Exemplo n.º 1
0
 static public Either <Errors.FormatError, Op> DeserializeV1(Format.Schema.OpBinary op)
 {
     return(op.Kind switch
     {
         Format.Schema.OpBinary.Types.Kind.LessThan => new Op.Binary(BinaryOp.LessThan),
         Format.Schema.OpBinary.Types.Kind.GreaterThan => new Op.Binary(BinaryOp.GreaterThan),
         Format.Schema.OpBinary.Types.Kind.LessOrEqual => new Op.Binary(BinaryOp.LessOrEqual),
         Format.Schema.OpBinary.Types.Kind.GreaterOrEqual => new Op.Binary(BinaryOp.GreaterOrEqual),
         Format.Schema.OpBinary.Types.Kind.Equal => new Op.Binary(BinaryOp.Equal),
         Format.Schema.OpBinary.Types.Kind.Contains => new Op.Binary(BinaryOp.Contains),
         Format.Schema.OpBinary.Types.Kind.Prefix => new Op.Binary(BinaryOp.Prefix),
         Format.Schema.OpBinary.Types.Kind.Suffix => new Op.Binary(BinaryOp.Suffix),
         Format.Schema.OpBinary.Types.Kind.Regex => new Op.Binary(BinaryOp.Regex),
         Format.Schema.OpBinary.Types.Kind.Add => new Op.Binary(BinaryOp.Add),
         Format.Schema.OpBinary.Types.Kind.Sub => new Op.Binary(BinaryOp.Sub),
         Format.Schema.OpBinary.Types.Kind.Mul => new Op.Binary(BinaryOp.Mul),
         Format.Schema.OpBinary.Types.Kind.Div => new Op.Binary(BinaryOp.Div),
         Format.Schema.OpBinary.Types.Kind.And => new Op.Binary(BinaryOp.And),
         Format.Schema.OpBinary.Types.Kind.Or => new Op.Binary(BinaryOp.Or),
         Format.Schema.OpBinary.Types.Kind.Intersection => new Op.Binary(BinaryOp.Intersection),
         Format.Schema.OpBinary.Types.Kind.Union => new Op.Binary(BinaryOp.Union),
         _ => new DeserializationError("invalid binary operation"),
     });
Exemplo n.º 2
0
            public override Format.Schema.Op Serialize()
            {
                Format.Schema.Op b = new Format.Schema.Op();

                Format.Schema.OpBinary b1 = new Format.Schema.OpBinary();

                switch (this.op)
                {
                case BinaryOp.LessThan:
                    b1.Kind = Format.Schema.OpBinary.Types.Kind.LessThan;
                    break;

                case BinaryOp.GreaterThan:
                    b1.Kind = Format.Schema.OpBinary.Types.Kind.GreaterThan;
                    break;

                case BinaryOp.LessOrEqual:
                    b1.Kind = Format.Schema.OpBinary.Types.Kind.LessOrEqual;
                    break;

                case BinaryOp.GreaterOrEqual:
                    b1.Kind = Format.Schema.OpBinary.Types.Kind.GreaterOrEqual;
                    break;

                case BinaryOp.Equal:
                    b1.Kind = Format.Schema.OpBinary.Types.Kind.Equal;
                    break;

                case BinaryOp.Contains:
                    b1.Kind = Format.Schema.OpBinary.Types.Kind.Contains;
                    break;

                case BinaryOp.Prefix:
                    b1.Kind = Format.Schema.OpBinary.Types.Kind.Prefix;
                    break;

                case BinaryOp.Suffix:
                    b1.Kind = Format.Schema.OpBinary.Types.Kind.Suffix;
                    break;

                case BinaryOp.Regex:
                    b1.Kind = Format.Schema.OpBinary.Types.Kind.Regex;
                    break;

                case BinaryOp.Add:
                    b1.Kind = Format.Schema.OpBinary.Types.Kind.Add;
                    break;

                case BinaryOp.Sub:
                    b1.Kind = Format.Schema.OpBinary.Types.Kind.Sub;
                    break;

                case BinaryOp.Mul:
                    b1.Kind = Format.Schema.OpBinary.Types.Kind.Mul;
                    break;

                case BinaryOp.Div:
                    b1.Kind = Format.Schema.OpBinary.Types.Kind.Div;
                    break;

                case BinaryOp.And:
                    b1.Kind = Format.Schema.OpBinary.Types.Kind.And;
                    break;

                case BinaryOp.Or:
                    b1.Kind = Format.Schema.OpBinary.Types.Kind.Or;
                    break;

                case BinaryOp.Intersection:
                    b1.Kind = Format.Schema.OpBinary.Types.Kind.Intersection;
                    break;

                case BinaryOp.Union:
                    b1.Kind = Format.Schema.OpBinary.Types.Kind.Union;
                    break;
                }

                b.Binary = b1;

                return(b);
            }