//------------------------------------------------------------------------------ // This code was generated by myriad. // Changes to this file will be lost when the code is regenerated. //------------------------------------------------------------------------------ namespace ConsumePlugin open System open System.Collections.Generic open System.Text.Json.Serialization /// Module containing JSON serializing extension members for the InnerTypeWithBoth type [] module InnerTypeWithBothJsonSerializeExtension = /// Extension methods for JSON parsing type InnerTypeWithBoth with /// Serialize to a JSON node static member toJsonNode (input : InnerTypeWithBoth) : System.Text.Json.Nodes.JsonNode = let node = System.Text.Json.Nodes.JsonObject () do node.Add (("it's-a-me"), (input.Thing |> System.Text.Json.Nodes.JsonValue.Create)) node.Add ( "map", (input.Map |> (fun field -> let ret = System.Text.Json.Nodes.JsonObject () for (KeyValue (key, value)) in field do ret.Add (key.ToString (), System.Text.Json.Nodes.JsonValue.Create value) ret )) ) node.Add ( "readOnlyDict", (input.ReadOnlyDict |> (fun field -> let ret = System.Text.Json.Nodes.JsonObject () for (KeyValue (key, value)) in field do ret.Add ( key.ToString (), (fun field -> let arr = System.Text.Json.Nodes.JsonArray () for mem in field do arr.Add (System.Text.Json.Nodes.JsonValue.Create mem) arr ) value ) ret )) ) node.Add ( "dict", (input.Dict |> (fun field -> let ret = System.Text.Json.Nodes.JsonObject () for (KeyValue (key, value)) in field do ret.Add (key.ToString (), System.Text.Json.Nodes.JsonValue.Create value) ret )) ) node.Add ( "concreteDict", (input.ConcreteDict |> (fun field -> let ret = System.Text.Json.Nodes.JsonObject () for (KeyValue (key, value)) in field do ret.Add (key.ToString (), InnerTypeWithBoth.toJsonNode value) ret )) ) node :> _ namespace ConsumePlugin open System open System.Collections.Generic open System.Text.Json.Serialization /// Module containing JSON serializing extension members for the SomeEnum type [] module SomeEnumJsonSerializeExtension = /// Extension methods for JSON parsing type SomeEnum with /// Serialize to a JSON node static member toJsonNode (input : SomeEnum) : System.Text.Json.Nodes.JsonNode = match input with | SomeEnum.Blah -> System.Text.Json.Nodes.JsonValue.Create 1 | SomeEnum.Thing -> System.Text.Json.Nodes.JsonValue.Create 0 | v -> failwith (sprintf "Unrecognised value for enum: %O" v) namespace ConsumePlugin open System open System.Collections.Generic open System.Text.Json.Serialization /// Module containing JSON serializing extension members for the JsonRecordTypeWithBoth type [] module JsonRecordTypeWithBothJsonSerializeExtension = /// Extension methods for JSON parsing type JsonRecordTypeWithBoth with /// Serialize to a JSON node static member toJsonNode (input : JsonRecordTypeWithBoth) : System.Text.Json.Nodes.JsonNode = let node = System.Text.Json.Nodes.JsonObject () do node.Add ("a", (input.A |> System.Text.Json.Nodes.JsonValue.Create)) node.Add ("b", (input.B |> System.Text.Json.Nodes.JsonValue.Create)) node.Add ( "c", (input.C |> (fun field -> let arr = System.Text.Json.Nodes.JsonArray () for mem in field do arr.Add (System.Text.Json.Nodes.JsonValue.Create mem) arr )) ) node.Add ("d", (input.D |> InnerTypeWithBoth.toJsonNode)) node.Add ( "e", (input.E |> (fun field -> let arr = System.Text.Json.Nodes.JsonArray () for mem in field do arr.Add (System.Text.Json.Nodes.JsonValue.Create mem) arr )) ) node.Add ( "arr", (input.Arr |> (fun field -> let arr = System.Text.Json.Nodes.JsonArray () for mem in field do arr.Add (System.Text.Json.Nodes.JsonValue.Create mem) arr )) ) node.Add ("byte", (input.Byte |> System.Text.Json.Nodes.JsonValue.Create>)) node.Add ("sbyte", (input.Sbyte |> System.Text.Json.Nodes.JsonValue.Create>)) node.Add ("i", (input.I |> System.Text.Json.Nodes.JsonValue.Create>)) node.Add ("i32", (input.I32 |> System.Text.Json.Nodes.JsonValue.Create>)) node.Add ("i64", (input.I64 |> System.Text.Json.Nodes.JsonValue.Create>)) node.Add ("u", (input.U |> System.Text.Json.Nodes.JsonValue.Create>)) node.Add ("u32", (input.U32 |> System.Text.Json.Nodes.JsonValue.Create>)) node.Add ("u64", (input.U64 |> System.Text.Json.Nodes.JsonValue.Create>)) node.Add ("f", (input.F |> System.Text.Json.Nodes.JsonValue.Create>)) node.Add ("f32", (input.F32 |> System.Text.Json.Nodes.JsonValue.Create>)) node.Add ("single", (input.Single |> System.Text.Json.Nodes.JsonValue.Create>)) node.Add ( "intMeasureOption", (input.IntMeasureOption |> (fun field -> match field with | None -> null :> System.Text.Json.Nodes.JsonNode | Some field -> (System.Text.Json.Nodes.JsonValue.Create> field) :> System.Text.Json.Nodes.JsonNode )) ) node.Add ( "intMeasureNullable", (input.IntMeasureNullable |> (fun field -> if field.HasValue then System.Text.Json.Nodes.JsonValue.Create> field.Value :> System.Text.Json.Nodes.JsonNode else null :> System.Text.Json.Nodes.JsonNode )) ) node.Add ("enum", (input.Enum |> SomeEnum.toJsonNode)) node.Add ( "timestamp", (input.Timestamp |> (fun field -> field.ToString "o" |> System.Text.Json.Nodes.JsonValue.Create)) ) node.Add ("unit", (input.Unit |> (fun value -> System.Text.Json.Nodes.JsonObject ()))) node :> _ namespace ConsumePlugin open System open System.Collections.Generic open System.Text.Json.Serialization /// Module containing JSON serializing extension members for the FirstDu type [] module FirstDuJsonSerializeExtension = /// Extension methods for JSON parsing type FirstDu with /// Serialize to a JSON node static member toJsonNode (input : FirstDu) : System.Text.Json.Nodes.JsonNode = let node = System.Text.Json.Nodes.JsonObject () match input with | FirstDu.EmptyCase -> node.Add ("type", System.Text.Json.Nodes.JsonValue.Create "emptyCase") | FirstDu.Case1 arg0 -> node.Add ("type", System.Text.Json.Nodes.JsonValue.Create "case1") let dataNode = System.Text.Json.Nodes.JsonObject () dataNode.Add ("data", System.Text.Json.Nodes.JsonValue.Create arg0) node.Add ("data", dataNode) | FirstDu.Case2 (arg0, arg1) -> node.Add ("type", System.Text.Json.Nodes.JsonValue.Create "case2") let dataNode = System.Text.Json.Nodes.JsonObject () dataNode.Add ("record", JsonRecordTypeWithBoth.toJsonNode arg0) dataNode.Add ("i", System.Text.Json.Nodes.JsonValue.Create arg1) node.Add ("data", dataNode) node :> _ namespace ConsumePlugin open System open System.Collections.Generic open System.Text.Json.Serialization /// Module containing JSON serializing extension members for the HeaderAndValue type [] module HeaderAndValueJsonSerializeExtension = /// Extension methods for JSON parsing type HeaderAndValue with /// Serialize to a JSON node static member toJsonNode (input : HeaderAndValue) : System.Text.Json.Nodes.JsonNode = let node = System.Text.Json.Nodes.JsonObject () do node.Add ("header", (input.Header |> System.Text.Json.Nodes.JsonValue.Create)) node.Add ("value", (input.Value |> System.Text.Json.Nodes.JsonValue.Create)) node :> _ namespace ConsumePlugin open System open System.Collections.Generic open System.Text.Json.Serialization /// Module containing JSON serializing extension members for the Foo type [] module FooJsonSerializeExtension = /// Extension methods for JSON parsing type Foo with /// Serialize to a JSON node static member toJsonNode (input : Foo) : System.Text.Json.Nodes.JsonNode = let node = System.Text.Json.Nodes.JsonObject () do node.Add ( "message", (input.Message |> (fun field -> match field with | None -> null :> System.Text.Json.Nodes.JsonNode | Some field -> HeaderAndValue.toJsonNode field )) ) node :> _ namespace ConsumePlugin open System open System.Collections.Generic open System.Text.Json.Serialization /// Module containing JSON serializing extension members for the CollectRemaining type [] module CollectRemainingJsonSerializeExtension = /// Extension methods for JSON parsing type CollectRemaining with /// Serialize to a JSON node static member toJsonNode (input : CollectRemaining) : System.Text.Json.Nodes.JsonNode = let node = System.Text.Json.Nodes.JsonObject () do node.Add ( "message", (input.Message |> (fun field -> match field with | None -> null :> System.Text.Json.Nodes.JsonNode | Some field -> HeaderAndValue.toJsonNode field )) ) for KeyValue (key, value) in input.Rest do node.Add (key, id value) node :> _ namespace ConsumePlugin open System open System.Collections.Generic open System.Text.Json.Serialization /// Module containing JSON serializing extension members for the OuterCollectRemaining type [] module OuterCollectRemainingJsonSerializeExtension = /// Extension methods for JSON parsing type OuterCollectRemaining with /// Serialize to a JSON node static member toJsonNode (input : OuterCollectRemaining) : System.Text.Json.Nodes.JsonNode = let node = System.Text.Json.Nodes.JsonObject () do for KeyValue (key, value) in input.Others do node.Add (key, System.Text.Json.Nodes.JsonValue.Create value) node.Add ("remaining", (input.Remaining |> CollectRemaining.toJsonNode)) node :> _ namespace ConsumePlugin /// Module containing JSON parsing extension members for the InnerTypeWithBoth type [] module InnerTypeWithBothJsonParseExtension = /// Extension methods for JSON parsing type InnerTypeWithBoth with /// Parse from a JSON node. static member jsonParse (node : System.Text.Json.Nodes.JsonNode) : InnerTypeWithBoth = let arg_4 = (match node.["concreteDict"] with | null -> raise ( System.Collections.Generic.KeyNotFoundException ( sprintf "Required key '%s' not found on JSON object" ("concreteDict") ) ) | v -> v) .AsObject () |> Seq.map (fun kvp -> let key = (kvp.Key) let value = InnerTypeWithBoth.jsonParse (kvp.Value) key, value ) |> Seq.map System.Collections.Generic.KeyValuePair |> System.Collections.Generic.Dictionary let arg_3 = (match node.["dict"] with | null -> raise ( System.Collections.Generic.KeyNotFoundException ( sprintf "Required key '%s' not found on JSON object" ("dict") ) ) | v -> v) .AsObject () |> Seq.map (fun kvp -> let key = (kvp.Key) |> System.Uri let value = (kvp.Value).AsValue().GetValue () key, value ) |> dict let arg_2 = (match node.["readOnlyDict"] with | null -> raise ( System.Collections.Generic.KeyNotFoundException ( sprintf "Required key '%s' not found on JSON object" ("readOnlyDict") ) ) | v -> v) .AsObject () |> Seq.map (fun kvp -> let key = (kvp.Key) let value = (kvp.Value).AsArray () |> Seq.cast |> Seq.map (fun elt -> elt.AsValue().GetValue ()) |> List.ofSeq key, value ) |> readOnlyDict let arg_1 = (match node.["map"] with | null -> raise ( System.Collections.Generic.KeyNotFoundException ( sprintf "Required key '%s' not found on JSON object" ("map") ) ) | v -> v) .AsObject () |> Seq.map (fun kvp -> let key = (kvp.Key) let value = (kvp.Value).AsValue().GetValue () |> System.Uri key, value ) |> Map.ofSeq let arg_0 = (match node.[("it's-a-me")] with | null -> raise ( System.Collections.Generic.KeyNotFoundException ( sprintf "Required key '%s' not found on JSON object" (("it's-a-me")) ) ) | v -> v) .AsValue() .GetValue () |> System.Guid.Parse { Thing = arg_0 Map = arg_1 ReadOnlyDict = arg_2 Dict = arg_3 ConcreteDict = arg_4 } namespace ConsumePlugin /// Module containing JSON parsing extension members for the SomeEnum type [] module SomeEnumJsonParseExtension = /// Extension methods for JSON parsing type SomeEnum with /// Parse from a JSON node. static member jsonParse (node : System.Text.Json.Nodes.JsonNode) : SomeEnum = match node.GetValueKind () with | System.Text.Json.JsonValueKind.Number -> node.AsValue().GetValue () |> enum | System.Text.Json.JsonValueKind.String -> match node.AsValue().GetValue().ToLowerInvariant () with | "blah" -> SomeEnum.Blah | "thing" -> SomeEnum.Thing | v -> failwith ("Unrecognised value for enum: %i" + v) | _ -> failwith ("Unrecognised kind for enum of type: " + "SomeEnum") namespace ConsumePlugin /// Module containing JSON parsing extension members for the JsonRecordTypeWithBoth type [] module JsonRecordTypeWithBothJsonParseExtension = /// Extension methods for JSON parsing type JsonRecordTypeWithBoth with /// Parse from a JSON node. static member jsonParse (node : System.Text.Json.Nodes.JsonNode) : JsonRecordTypeWithBoth = let arg_21 = () let arg_20 = (match node.["timestamp"] with | null -> raise ( System.Collections.Generic.KeyNotFoundException ( sprintf "Required key '%s' not found on JSON object" ("timestamp") ) ) | v -> v) .AsValue() .GetValue () |> System.DateTimeOffset.Parse let arg_19 = SomeEnum.jsonParse ( match node.["enum"] with | null -> raise ( System.Collections.Generic.KeyNotFoundException ( sprintf "Required key '%s' not found on JSON object" ("enum") ) ) | v -> v ) let arg_18 = match node.["intMeasureNullable"] with | null -> System.Nullable () | v -> v.AsValue().GetValue () |> LanguagePrimitives.Int32WithMeasure |> System.Nullable let arg_17 = match node.["intMeasureOption"] with | null -> None | v -> v.AsValue().GetValue () |> LanguagePrimitives.Int32WithMeasure |> Some let arg_16 = (match node.["single"] with | null -> raise ( System.Collections.Generic.KeyNotFoundException ( sprintf "Required key '%s' not found on JSON object" ("single") ) ) | v -> v) .AsValue() .GetValue () |> LanguagePrimitives.Float32WithMeasure let arg_15 = (match node.["f32"] with | null -> raise ( System.Collections.Generic.KeyNotFoundException ( sprintf "Required key '%s' not found on JSON object" ("f32") ) ) | v -> v) .AsValue() .GetValue () |> LanguagePrimitives.Float32WithMeasure let arg_14 = (match node.["f"] with | null -> raise ( System.Collections.Generic.KeyNotFoundException ( sprintf "Required key '%s' not found on JSON object" ("f") ) ) | v -> v) .AsValue() .GetValue () |> LanguagePrimitives.FloatWithMeasure let arg_13 = (match node.["u64"] with | null -> raise ( System.Collections.Generic.KeyNotFoundException ( sprintf "Required key '%s' not found on JSON object" ("u64") ) ) | v -> v) .AsValue() .GetValue () |> LanguagePrimitives.UInt64WithMeasure let arg_12 = (match node.["u32"] with | null -> raise ( System.Collections.Generic.KeyNotFoundException ( sprintf "Required key '%s' not found on JSON object" ("u32") ) ) | v -> v) .AsValue() .GetValue () |> LanguagePrimitives.UInt32WithMeasure let arg_11 = (match node.["u"] with | null -> raise ( System.Collections.Generic.KeyNotFoundException ( sprintf "Required key '%s' not found on JSON object" ("u") ) ) | v -> v) .AsValue() .GetValue () |> LanguagePrimitives.UInt32WithMeasure let arg_10 = (match node.["i64"] with | null -> raise ( System.Collections.Generic.KeyNotFoundException ( sprintf "Required key '%s' not found on JSON object" ("i64") ) ) | v -> v) .AsValue() .GetValue () |> LanguagePrimitives.Int64WithMeasure let arg_9 = (match node.["i32"] with | null -> raise ( System.Collections.Generic.KeyNotFoundException ( sprintf "Required key '%s' not found on JSON object" ("i32") ) ) | v -> v) .AsValue() .GetValue () |> LanguagePrimitives.Int32WithMeasure let arg_8 = (match node.["i"] with | null -> raise ( System.Collections.Generic.KeyNotFoundException ( sprintf "Required key '%s' not found on JSON object" ("i") ) ) | v -> v) .AsValue() .GetValue () |> LanguagePrimitives.Int32WithMeasure let arg_7 = (match node.["sbyte"] with | null -> raise ( System.Collections.Generic.KeyNotFoundException ( sprintf "Required key '%s' not found on JSON object" ("sbyte") ) ) | v -> v) .AsValue() .GetValue () |> LanguagePrimitives.SByteWithMeasure let arg_6 = (match node.["byte"] with | null -> raise ( System.Collections.Generic.KeyNotFoundException ( sprintf "Required key '%s' not found on JSON object" ("byte") ) ) | v -> v) .AsValue() .GetValue () |> LanguagePrimitives.ByteWithMeasure let arg_5 = (match node.["arr"] with | null -> raise ( System.Collections.Generic.KeyNotFoundException ( sprintf "Required key '%s' not found on JSON object" ("arr") ) ) | v -> v) .AsArray () |> Seq.cast |> Seq.map (fun elt -> elt.AsValue().GetValue ()) |> Array.ofSeq let arg_4 = (match node.["e"] with | null -> raise ( System.Collections.Generic.KeyNotFoundException ( sprintf "Required key '%s' not found on JSON object" ("e") ) ) | v -> v) .AsArray () |> Seq.cast |> Seq.map (fun elt -> elt.AsValue().GetValue ()) |> Array.ofSeq let arg_3 = InnerTypeWithBoth.jsonParse ( match node.["d"] with | null -> raise ( System.Collections.Generic.KeyNotFoundException ( sprintf "Required key '%s' not found on JSON object" ("d") ) ) | v -> v ) let arg_2 = (match node.["c"] with | null -> raise ( System.Collections.Generic.KeyNotFoundException ( sprintf "Required key '%s' not found on JSON object" ("c") ) ) | v -> v) .AsArray () |> Seq.cast |> Seq.map (fun elt -> elt.AsValue().GetValue ()) |> List.ofSeq let arg_1 = (match node.["b"] with | null -> raise ( System.Collections.Generic.KeyNotFoundException ( sprintf "Required key '%s' not found on JSON object" ("b") ) ) | v -> v) .AsValue() .GetValue () let arg_0 = (match node.["a"] with | null -> raise ( System.Collections.Generic.KeyNotFoundException ( sprintf "Required key '%s' not found on JSON object" ("a") ) ) | v -> v) .AsValue() .GetValue () { A = arg_0 B = arg_1 C = arg_2 D = arg_3 E = arg_4 Arr = arg_5 Byte = arg_6 Sbyte = arg_7 I = arg_8 I32 = arg_9 I64 = arg_10 U = arg_11 U32 = arg_12 U64 = arg_13 F = arg_14 F32 = arg_15 Single = arg_16 IntMeasureOption = arg_17 IntMeasureNullable = arg_18 Enum = arg_19 Timestamp = arg_20 Unit = arg_21 } namespace ConsumePlugin /// Module containing JSON parsing extension members for the FirstDu type [] module FirstDuJsonParseExtension = /// Extension methods for JSON parsing type FirstDu with /// Parse from a JSON node. static member jsonParse (node : System.Text.Json.Nodes.JsonNode) : FirstDu = let ty = (match node.["type"] with | null -> raise ( System.Collections.Generic.KeyNotFoundException ( sprintf "Required key '%s' not found on JSON object" ("type") ) ) | v -> v) |> (fun v -> v.GetValue ()) match ty with | "emptyCase" -> FirstDu.EmptyCase | "case1" -> let node = (match node.["data"] with | null -> raise ( System.Collections.Generic.KeyNotFoundException ( sprintf "Required key '%s' not found on JSON object" ("data") ) ) | v -> v) FirstDu.Case1 ( (match node.["data"] with | null -> raise ( System.Collections.Generic.KeyNotFoundException ( sprintf "Required key '%s' not found on JSON object" ("data") ) ) | v -> v) .AsValue() .GetValue () ) | "case2" -> let node = (match node.["data"] with | null -> raise ( System.Collections.Generic.KeyNotFoundException ( sprintf "Required key '%s' not found on JSON object" ("data") ) ) | v -> v) FirstDu.Case2 ( JsonRecordTypeWithBoth.jsonParse ( match node.["record"] with | null -> raise ( System.Collections.Generic.KeyNotFoundException ( sprintf "Required key '%s' not found on JSON object" ("record") ) ) | v -> v ), (match node.["i"] with | null -> raise ( System.Collections.Generic.KeyNotFoundException ( sprintf "Required key '%s' not found on JSON object" ("i") ) ) | v -> v) .AsValue() .GetValue () ) | v -> failwith ("Unrecognised 'type' field value: " + v) namespace ConsumePlugin /// Module containing JSON parsing extension members for the HeaderAndValue type [] module HeaderAndValueJsonParseExtension = /// Extension methods for JSON parsing type HeaderAndValue with /// Parse from a JSON node. static member jsonParse (node : System.Text.Json.Nodes.JsonNode) : HeaderAndValue = let arg_1 = (match node.["value"] with | null -> raise ( System.Collections.Generic.KeyNotFoundException ( sprintf "Required key '%s' not found on JSON object" ("value") ) ) | v -> v) .AsValue() .GetValue () let arg_0 = (match node.["header"] with | null -> raise ( System.Collections.Generic.KeyNotFoundException ( sprintf "Required key '%s' not found on JSON object" ("header") ) ) | v -> v) .AsValue() .GetValue () { Header = arg_0 Value = arg_1 } namespace ConsumePlugin /// Module containing JSON parsing extension members for the Foo type [] module FooJsonParseExtension = /// Extension methods for JSON parsing type Foo with /// Parse from a JSON node. static member jsonParse (node : System.Text.Json.Nodes.JsonNode) : Foo = let arg_0 = match node.["message"] with | null -> None | v -> HeaderAndValue.jsonParse v |> Some { Message = arg_0 } namespace ConsumePlugin /// Module containing JSON parsing extension members for the CollectRemaining type [] module CollectRemainingJsonParseExtension = /// Extension methods for JSON parsing type CollectRemaining with /// Parse from a JSON node. static member jsonParse (node : System.Text.Json.Nodes.JsonNode) : CollectRemaining = let arg_1 = let result = System.Collections.Generic.Dictionary () let node = node.AsObject () for KeyValue (key, value) in node do if key = "message" then () else result.Add (key, node.[key]) result let arg_0 = match node.["message"] with | null -> None | v -> HeaderAndValue.jsonParse v |> Some { Message = arg_0 Rest = arg_1 } namespace ConsumePlugin /// Module containing JSON parsing extension members for the OuterCollectRemaining type [] module OuterCollectRemainingJsonParseExtension = /// Extension methods for JSON parsing type OuterCollectRemaining with /// Parse from a JSON node. static member jsonParse (node : System.Text.Json.Nodes.JsonNode) : OuterCollectRemaining = let arg_1 = CollectRemaining.jsonParse ( match node.["remaining"] with | null -> raise ( System.Collections.Generic.KeyNotFoundException ( sprintf "Required key '%s' not found on JSON object" ("remaining") ) ) | v -> v ) let arg_0 = let result = System.Collections.Generic.Dictionary () let node = node.AsObject () for KeyValue (key, value) in node do if key = "remaining" then () else result.Add ( key, (match node.[key] with | null -> raise ( System.Collections.Generic.KeyNotFoundException ( sprintf "Required key '%s' not found on JSON object" (key) ) ) | v -> v) .AsValue() .GetValue () ) result { Others = arg_0 Remaining = arg_1 }