using System.Diagnostics.CodeAnalysis; using Microsoft.AspNetCore.Http; using ZelWiki.Library.Interfaces; namespace ZelWiki.Engine.Library.Interfaces { public interface IZelEngineState { #region 参数 public ISessionState? Session { get; } public IQueryCollection QueryString { get; } public IZelEngine Engine { get; } public IPage Page { get; } public int? Revision { get; } public HashSet OmitMatches { get; } public int NestDepth { get; } #endregion #region 状态 public string? PageTitle { get; set; } public Dictionary Variables { get; } public Dictionary Snippets { get; } public List Tags { get; set; } public List ProcessingInstructions { get; } public List OutgoingLinks { get; } public List TableOfContents { get; } public List Headers { get; } #endregion #region 结果 public string HtmlResult { get; } public TimeSpan ProcessingTime { get; } public int ErrorCount { get; } public int MatchCount { get; } #endregion /// /// /// public void SetStateValue(string key, T value); /// /// /// public bool TryGetStateValue(string key, [MaybeNullWhen(false)] out T? outValue); /// /// /// public T GetStateValue(string key, T defaultValue); string GetNextQueryToken(); /// /// /// /// /// /// IZelEngineState TransformChild(IPage page, int? revision = null); } }