Example #1
0
        public override void Write(Utf8JsonWriter writer, Placeable value, JsonSerializerOptions options)
        {
            writer.WriteStartObject();
            writer.WritePropertyName("type");
            writer.WriteStringValue("Placeable");
            writer.WritePropertyName("expression");

            switch (value.Expression)
            {
            case IInlineExpression inlineExpression:
                ResourceSerializer.WriteInlineExpression(writer, inlineExpression, options);
                break;

            case SelectExpression selectExpression:
                JsonSerializer.Serialize(writer, selectExpression, options);
                break;
            }

            writer.WriteEndObject();
        }
Example #2
0
 public override void Write(Utf8JsonWriter writer, CallArguments value, JsonSerializerOptions options)
 {
     writer.WriteStartObject();
     writer.WritePropertyName("type");
     writer.WriteStringValue("CallArguments");
     writer.WritePropertyName("positional");
     writer.WriteStartArray();
     foreach (var positionalArg in value.PositionalArgs)
     {
         ResourceSerializer.WriteInlineExpression(writer, positionalArg, options);
     }
     writer.WriteEndArray();
     writer.WritePropertyName("named");
     writer.WriteStartArray();
     foreach (var namedArg in value.NamedArgs)
     {
         JsonSerializer.Serialize(writer, namedArg, options);
     }
     writer.WriteEndArray();
     writer.WriteEndObject();
 }