class SegmentTree::Segment
:nodoc:all:
An elementary interval
def <=>(other)
def <=>(other) case cmp = @range.begin <=> other.range.begin when 0 then @range.end <=> other.range.end else cmp end end
def ==(other)
def ==(other) other.is_a?(self.class) && @range == other.range && @value == other.value end
def eql?(other)
def eql?(other) other.is_a?(self.class) && @range.eql?(other.range) && @value.eql?(other.value) end
def hash
def hash [@range, @value].hash end
def initialize(range, value)
def initialize(range, value) raise ArgumentError, 'Range expected, %s given' % range.class.name unless range.is_a?(Range) @range, @value = range, value end
def marshal_dump
def marshal_dump { range: @range, value: @value, } end
def marshal_load(serialized_tree)
def marshal_load(serialized_tree) @range = serialized_tree[:range] @value = serialized_tree[:value] end