File: ITokenTrie.cs
Web Access
Project: src\src\sdk\src\TemplateEngine\Microsoft.TemplateEngine.Core.Contracts\Microsoft.TemplateEngine.Core.Contracts.csproj (Microsoft.TemplateEngine.Core.Contracts)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

namespace Microsoft.TemplateEngine.Core.Contracts
{
    public interface ITokenTrie
    {
        int Count { get; }

        int MaxLength { get; }

        int MinLength { get; }

        IReadOnlyList<int> TokenLength { get; }

        IReadOnlyList<IToken> Tokens { get; }

        int AddToken(IToken token);

        void AddToken(IToken? token, int index);

        bool GetOperation(byte[] buffer, int bufferLength, ref int currentBufferPosition, out int token);

        bool GetOperation(byte[] buffer, int bufferLength, ref int currentBufferPosition, bool mustMatchPosition, out int token);

        void Append(ITokenTrie trie);

        ITokenTrieEvaluator CreateEvaluator();
    }
}