/// <summary> /// Get a value from a char trie. Used mostly for testing purposes. /// </summary> /// <typeparam name="TResult"></typeparam> /// <param name="trie"></param> /// <param name="keys"></param> /// <returns></returns> public static IOption <TResult> Get <TResult>(this IReadOnlyTrie <char, TResult> trie, string keys) { var input = new StringCharacterSequence(keys, default); var result = trie.Get(input); return(result.Match(FailureOption <TResult> .Instance, value => new SuccessOption <TResult>(value))); }
/// <summary> /// Lookup a sequences of inputs in an IReadOnlyTrie and return all matches from the current /// position. /// </summary> /// <typeparam name="TOutput"></typeparam> /// <param name="readOnlyTrie"></param> /// <returns></returns> public static IMultiParser <TInput, TOutput> TrieMulti <TOutput>(IReadOnlyTrie <TInput, TOutput> readOnlyTrie) where TOutput : notnull => new TrieParser <TInput, TOutput>(readOnlyTrie);