public static OptimizerService.PrimitiveValue EncodePrimitiveValue(object value)
        {
            var data = new OptimizerService.PrimitiveValue();

            if (value is int intValue)
            {
                data.IntValue = intValue;
            }
            else if (value is bool boolValue)
            {
                data.BoolValue = boolValue;
            }
            else if (value is string stringValue)
            {
                data.StringValue = stringValue;
            }
            else if (value is double doubleValue)
            {
                data.DoubleValue = doubleValue;
            }
            else
            {
                throw new System.ArgumentException("Invalid type provided to OptimizerServiceEncoderDecoder.Encoder.EncodePrimitiveValue(..). Type: " + value.GetType());
            }

            return(data);
        }
        public static object DecodePrimitiveValue(OptimizerService.PrimitiveValue value)
        {
            switch (value.ValueCase)
            {
            case OptimizerService.PrimitiveValue.ValueOneofCase.IntValue:
                return((int)value.IntValue);

            case OptimizerService.PrimitiveValue.ValueOneofCase.DoubleValue:
                return((double)value.DoubleValue);

            case OptimizerService.PrimitiveValue.ValueOneofCase.BoolValue:
                return((bool)value.BoolValue);

            case OptimizerService.PrimitiveValue.ValueOneofCase.StringValue:
                return((string)value.StringValue);

            default:
                throw new System.ArgumentException("Invalid type provided to OptimizerServiceEncoderDecoder.Decoder.DecodePrimitiveValue(..). Type: " + value.GetType());
            }
        }