# Sequential, nestable keys for tracking order of insertion in "the graph"
# @api private
class Puppet::Graph::Key
include Comparable
attr_reader :value
protected :value
def initialize(value = [0])
@value = value
end
def next
next_values = @value.clone
next_values[-1] += 1
Puppet::Graph::Key.new(next_values)
end
def down
Puppet::Graph::Key.new(@value + [0])
end
def <=>(other)
@value <=> other.value
end
end