Exemplo n.º 1
0
    public static void EqualsHelper <K, T, M>(
        MaskItemIndexed <K, bool, M?> maskItem,
        T lhs,
        T rhs,
        Func <K, T, T, M> maskGetter,
        Include include)
        where M : class, IMask <bool>
    {
        if (lhs == null && rhs == null)
        {
            maskItem.Overall  = true;
            maskItem.Specific = default;
        }
        else if (lhs == null || rhs == null)
        {
            maskItem.Overall  = false;
            maskItem.Specific = default;
        }
        var mask = maskGetter(maskItem.Index, lhs, rhs);

        maskItem.Overall = mask.All((b) => b);
        if (!maskItem.Overall || include == Include.All)
        {
            maskItem.Specific = mask;
        }
    }
Exemplo n.º 2
0
 public bool Equals(MaskItemIndexed <TOverall, TSpecific>?other)
 {
     if (!base.Equals(other))
     {
         return(false);
     }
     return(Index == other.Index);
 }
Exemplo n.º 3
0
 protected void Translate_InternalFill<R>(Mask<R> obj, Func<TItem, R> eval)
 {
     base.Translate_InternalFill(obj, eval);
     if (PhaseFragments != null)
     {
         obj.PhaseFragments = new MaskItem<R, IEnumerable<MaskItemIndexed<R, ScenePhaseFragment.Mask<R>?>>?>(eval(this.PhaseFragments.Overall), Enumerable.Empty<MaskItemIndexed<R, ScenePhaseFragment.Mask<R>?>>());
         if (PhaseFragments.Specific != null)
         {
             var l = new List<MaskItemIndexed<R, ScenePhaseFragment.Mask<R>?>>();
             obj.PhaseFragments.Specific = l;
             foreach (var item in PhaseFragments.Specific.WithIndex())
             {
                 MaskItemIndexed<R, ScenePhaseFragment.Mask<R>?>? mask = item.Item == null ? null : new MaskItemIndexed<R, ScenePhaseFragment.Mask<R>?>(item.Item.Index, eval(item.Item.Overall), item.Item.Specific?.Translate(eval));
                 if (mask == null) continue;
                 l.Add(mask);
             }
         }
     }
 }
Exemplo n.º 4
0
 protected void Translate_InternalFill <R>(Mask <R> obj, Func <TItem, R> eval)
 {
     obj.Name = eval(this.Name);
     if (Functions != null)
     {
         obj.Functions = new MaskItem <R, IEnumerable <MaskItemIndexed <R, PexObjectNamedFunction.Mask <R>?> >?>(eval(this.Functions.Overall), Enumerable.Empty <MaskItemIndexed <R, PexObjectNamedFunction.Mask <R>?> >());
         if (Functions.Specific != null)
         {
             var l = new List <MaskItemIndexed <R, PexObjectNamedFunction.Mask <R>?> >();
             obj.Functions.Specific = l;
             foreach (var item in Functions.Specific.WithIndex())
             {
                 MaskItemIndexed <R, PexObjectNamedFunction.Mask <R>?>?mask = item.Item == null ? null : new MaskItemIndexed <R, PexObjectNamedFunction.Mask <R>?>(item.Item.Index, eval(item.Item.Overall), item.Item.Specific?.Translate(eval));
                 if (mask == null)
                 {
                     continue;
                 }
                 l.Add(mask);
             }
         }
     }
 }