예제 #1
0
        /// <summary>
        ///   Specifies what unit should be built to fill <see cref="Maybe{T}" /> value.
        /// </summary>
        public static TreatingTuner <T> TreatMaybeValue <T>(this TreatingTuner <Maybe <T> > treatingTuner)
        {
            var treat       = treatingTuner.AsExtensibility <IUnitSequenceExtensibility>();
            var uniqueToken = Guid.NewGuid();

            treat.UnitSequenceMatcher.AddBuildAction(BuildStage.Create, new BuildMaybeAction <T>(uniqueToken));
            return(new TreatingTuner <T>(treat.UnitSequenceMatcher.AddOrGetUnitSequenceMatcher(new WildcardUnitSequenceMatcher(Match.Type <T>(uniqueToken), 0))));
        }
예제 #2
0
        /// <summary>
        ///   Specifies that value from built <see cref="Maybe{T}" /> should be used as a unit.
        /// </summary>
        public static TreatingTuner <Maybe <T> > AsMaybeValueOf <T>(this TreatingTuner <T> treatingTuner)
        {
            var treat = treatingTuner.AsExtensibility <IUnitSequenceExtensibility>();

            return(new TreatingTuner <Maybe <T> >(treat.UnitSequenceMatcher.AddBuildAction(BuildStage.Initialize, new GetMaybeValueBuildAction <T>())));
        }