public static ISpecNodeMapBuilder AddBoth(this ISpecNodeMapBuilder specNodeMapBuilder, Type specType, int id, int notId) { specNodeMapBuilder.Add(specType, id); specNodeMapBuilder.AddNot(specType, notId); return(specNodeMapBuilder); }
public static ISpecNodeMapBuilder StartFrom(this ISpecNodeMapBuilder specNodeMapBuilder, int startId, Action <IAutoSpecNodeMapBuilder> action) { if (startId <= ReservedThreshold || startId == SpecNodeMapBuilder.UndefinedId) { throw new ArgumentException($"{startId} must be more than reserved ids({ReservedThreshold}) and " + $"not equal undefined id({SpecNodeMapBuilder.UndefinedId})"); } return(StartFromImpl(specNodeMapBuilder, startId, id => id + 1, action)); }
public static ISpecConclusions <T> For <T>(ISpecNodeMapBuilder specNodeMapBuilder) => new SpecConclusions <T>(specNodeMapBuilder);
public SpecConclusion(IMemberNode <TRoot, T> memberNode, ICompositeSpec <T> spec, ISpecNodeMapBuilder specNodeMapBuilder) => (_memberNode, _spec, _specNodeMapBuilder) = (memberNode, spec, specNodeMapBuilder);
private static ISpecNodeMapBuilder StartFromImpl(ISpecNodeMapBuilder specNodeMapBuilder, int startId, Func <int, int> func, Action <IAutoSpecNodeMapBuilder> action) { action(new AutoSpecNodeMapBuilder(specNodeMapBuilder, startId, func)); return(specNodeMapBuilder); }
internal static ISpecNodeMapBuilder StartFromReserved(this ISpecNodeMapBuilder specNodeMapBuilder, Action <IAutoSpecNodeMapBuilder> action) => StartFromImpl(specNodeMapBuilder, ReservedThreshold, id => id - 1, action);
public SpecConclusions(IEnumerable <ISpecConclusion <TRoot> > specConclusions, ISpecNodeMapBuilder specNodeMapBuilder) => (_specConclusions, _specNodeMapBuilder) = (specConclusions, specNodeMapBuilder);
public SpecConclusions(ISpecNodeMapBuilder specNodeMapBuilder) : this(Enumerable.Empty <ISpecConclusion <TRoot> >(), specNodeMapBuilder) { }
public AutoSpecNodeMapBuilder(ISpecNodeMapBuilder specNodeMapBuilder, int startId, Func <int, int> changeId) => (_specNodeMapBuilder, _currentId, _changeId) = (specNodeMapBuilder, startId, changeId);