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)); }