Find values stored under prefix

var trie = new Trie[Int]
trie["foo"] = 1
trie["fooo"] = 2
trie["foooo"] = 3
trie["bar"] = 4

assert trie.find_by_prefix("") == [1, 4, 2, 3]
assert trie.find_by_prefix("foo") == [1, 2, 3]
assert trie.find_by_prefix("bar") == [4]
assert trie.find_by_prefix("baz").is_empty

Property definitions

trees $ Trie :: find_by_prefix
	# Find values stored under `prefix`
	#
	# ~~~
	# # Associate some integers to Map keys
	# var trie = new Trie[Int]
	# trie["foo"] = 1
	# trie["fooo"] = 2
	# trie["foooo"] = 3
	# trie["bar"] = 4
	#
	# assert trie.find_by_prefix("") == [1, 4, 2, 3]
	# assert trie.find_by_prefix("foo") == [1, 2, 3]
	# assert trie.find_by_prefix("bar") == [4]
	# assert trie.find_by_prefix("baz").is_empty
	# ~~~
	fun find_by_prefix(prefix: String): Array[E] do
		var node
		if prefix == "" then
			node = root
		else
			node = search_node(prefix)
		end
		if node == null then return new Array[E]
		return node.collect_values
	end
lib/trees/trie.nit:117,2--141,4