using CanonSharp.Combinator.Abstractions; namespace CanonSharp.Combinator.Results; /// /// 实际实现的解析成功结果 /// /// 解析结果 /// 解析成功之后的下一个输入流状态 /// 输入流类型 /// 输入流的状态类型 /// 解析结果的类型 internal sealed class InternalSuccessfulResult(T result, TState state) : SuccessfulResult(result) where TState : IReadState { protected override ParseResult RunNext(Parser parser, Func, ParseResult> continuation) => parser.Run(state, continuation); public override ParseResult Map(Func map) => new InternalSuccessfulResult(map(Value), state); }