private static void ApplyParameterMarshaling(Parameter parameter, YamlBindingTransform marshaling)
 {
     parameter.Attributes.AddRange(marshaling.Attributes);
     parameter.QualifiedType = marshaling.TransformType(parameter.QualifiedType);
     parameter.Usage         = marshaling.Semantics switch
     {
         ParamSemantics.In => ParameterUsage.In,
         ParamSemantics.Out => ParameterUsage.Out,
         ParamSemantics.InOut => parameter.Type is ArrayType ? ParameterUsage.In : ParameterUsage.InOut,
         _ => throw new InvalidOperationException( ),
     };
 }
        private bool TryGetTransformInfo(string name, out YamlBindingTransform xform)
        {
            xform = null;
            if (!Configuration.FunctionBindings.TryGetValue(name, out YamlFunctionBinding binding))
            {
                return(false);
            }

            if (binding.ReturnTransform == null)
            {
                return(false);
            }

            xform = binding.ReturnTransform;
            return(true);
        }
        private static void ApplyParameterMarshaling(Parameter parameter, YamlBindingTransform marshaling)
        {
            parameter.Attributes.AddRange(marshaling.Attributes);
            parameter.QualifiedType = marshaling.TransformType(parameter.QualifiedType);
            switch (marshaling.Semantics)
            {
            case ParamSemantics.In:
                parameter.Usage = ParameterUsage.In;
                break;

            case ParamSemantics.Out:
                parameter.Usage = ParameterUsage.Out;
                break;

            case ParamSemantics.InOut:
                parameter.Usage = parameter.Type is ArrayType ? ParameterUsage.In : ParameterUsage.InOut;
                break;

            default:
                throw new InvalidOperationException( );
            }
        }
 private bool TryGetTransformInfo(string functionName, string paramName, out YamlBindingTransform xform)
 {
     xform = null;
     return(Configuration.FunctionBindings.TryGetValue(functionName, out YamlFunctionBinding binding) &&
            binding.ParamTransforms.TryGetValue(paramName, out xform));
 }