gonzedge/rambling-trie

View on GitHub
lib/rambling/trie/comparable.rb

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
# frozen_string_literal: true

module Rambling
  module Trie
    # Provides the comparable behavior for the trie data structure.
    module Comparable
      # Compares two nodes.
      # @param [Nodes::Node] other the node to compare against.
      # @return [Boolean] +true+ if the nodes' {Nodes::Node#letter #letter} and
      #   {Nodes::Node#children_tree #children_tree} are equal, +false+ otherwise.
      def == other
        letter == other.letter &&
          terminal? == other.terminal? &&
          children_tree == other.children_tree
      end
    end
  end
end