instance method
Set#<=>
(untyped other) -> 0?
set <=> other → -1, 0, 1, or nil
set.c
View on GitHub ↗
static VALUE
set_i_compare(VALUE set, VALUE other)
{
if (rb_obj_is_kind_of(other, rb_cSet)) {
size_t set_size = RSET_SIZE(set);
size_t other_size = RSET_SIZE(other);
if (set_size < other_size) {
if (set_le(set, other) == Qtrue) {
return INT2NUM(-1);
}
}
else if (set_size > other_size) {
if (set_le(other, set) == Qtrue) {
return INT2NUM(1);
}
}
else if (set_le(set, other) == Qtrue) {
return INT2NUM(0);
}
}
return Qnil;
}
Returns 0 if the set are equal, -1 / 1 if the set is a proper subset / superset of the given set, or nil if they both have unique elements.