// ----------------------------------------------------------------------------- // file="Relation" // Project: StgSharp // Copyright (c) Nitload. // SPDX-License-Identifier: MIT // ----------------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Nitload.RegularAnalysis.Abstraction { public class Relation( TEvaluator evaluator ) where TEvaluator : IRelationEvaluator { public TEvaluator Evaluator { get; init; } = evaluator; public TValue Weight { get; private set; } = default!; public TValue Evaluate( ReadOnlySpan sequence ) { Weight = Evaluate(sequence); return Weight; } } public class Relation( IRelationEvaluator evaluator ) : Relation>(evaluator) { } public interface IRelationEvaluator { TValue Evaluate( ReadOnlySpan sequence ); } }