diff --git a/README.md b/README.md index 9c6a39e6..f38941db 100644 --- a/README.md +++ b/README.md @@ -1211,10 +1211,13 @@ There are a few restrictions on the types that can be generated. Among the primi | `: ICollection` | `T[] \| null` | Supports all `ICollection` implemented type like `List` | `: ISet` | `Set \| null` | Supports all `ISet` implemented type like `HashSet` | `: IDictionary` | `Map \| null` | Supports all `IDictionary` implemented type like `Dictionary`. -| `[MemoryPackable]` | `class` | Supports class only +| `[MemoryPackable]` | `class` | Supports class and struct (see notes below) | `[MemoryPackUnion]` | `abstract class` | -`[GenerateTypeScript]` can only be applied to classes and is currently not supported by struct. +`[GenerateTypeScript]` supports both classes and structs. There are two serialization modes depending on the struct type: + +- **Managed struct** (contains reference-type fields, e.g. `struct Foo { string Name; int Value; }`): uses the same object-header wire format as classes. The generated TypeScript `class` has non-nullable serialize signatures and omits the null-object-header write, matching the C# value-type semantics. +- **Unmanaged struct** (contains only unmanaged fields, e.g. `struct Point { int X; int Y; }`): serialized as a raw memory blit with no object header, matching `WriteUnmanaged`/`ReadUnmanaged` in C#. The generated TypeScript `class` writes each field individually at its correct byte offset (including any padding required by natural alignment), and deserialize always returns a non-nullable value. ### Configure import file extension and member name casing diff --git a/sandbox/SandboxWebApp/Controllers/MemoryPackController.cs b/sandbox/SandboxWebApp/Controllers/MemoryPackController.cs index 4304125d..2d82cbb1 100644 --- a/sandbox/SandboxWebApp/Controllers/MemoryPackController.cs +++ b/sandbox/SandboxWebApp/Controllers/MemoryPackController.cs @@ -1,4 +1,4 @@ -using MemoryPack; +using MemoryPack; using Microsoft.AspNetCore.Mvc; namespace SandboxWebApp.Controllers; @@ -26,4 +26,16 @@ public NullableFloatTest PostNullableTest([FromBody] NullableFloatTest input) return ret; } + + [Route("vector3")] + [HttpPost] + public Vector3 PostVector3([FromBody] Vector3 value) => value; + + [Route("colorTag")] + [HttpPost] + public ColorTag PostColorTag([FromBody] ColorTag value) => value; + + [Route("gameObject")] + [HttpPost] + public GameObject PostGameObject([FromBody] GameObject value) => value; } diff --git a/sandbox/SandboxWebApp/Models.cs b/sandbox/SandboxWebApp/Models.cs index ac05fc02..bae2ed6e 100644 --- a/sandbox/SandboxWebApp/Models.cs +++ b/sandbox/SandboxWebApp/Models.cs @@ -1,4 +1,4 @@ -using MemoryPack; +using MemoryPack; using System.ComponentModel; using System.Security.Principal; @@ -205,3 +205,38 @@ public partial class NullableFloatTest public float? NullableFloat { get; set; } public double? NullableDouble { get; set; } } + +[MemoryPackable] +[GenerateTypeScript] +public partial struct Vector3 +{ + public float X { get; set; } + public float Y { get; set; } + public float Z { get; set; } +} + +[MemoryPackable] +[GenerateTypeScript] +public partial struct ColorTag +{ + public string? Name { get; set; } + public int Code { get; set; } +} + +[MemoryPackable] +[GenerateTypeScript] +public partial struct BoundingBox +{ + public Vector3 Min { get; set; } + public Vector3 Max { get; set; } +} + +[MemoryPackable] +[GenerateTypeScript] +public partial class GameObject +{ + public string? Name { get; set; } + public Vector3 Position { get; set; } + public BoundingBox Bounds { get; set; } + public ColorTag Tag { get; set; } +} diff --git a/sandbox/SandboxWebApp/Pages/Index.cshtml b/sandbox/SandboxWebApp/Pages/Index.cshtml index 03f4b3c0..824eb1af 100644 --- a/sandbox/SandboxWebApp/Pages/Index.cshtml +++ b/sandbox/SandboxWebApp/Pages/Index.cshtml @@ -1,4 +1,4 @@ -@page +@page @model IndexModel @{ ViewData["Title"] = "Home page"; @@ -11,6 +11,9 @@ import { testNullableFloatWithNulls } from "./js/file.js"; import { hoge } from "./js/file.js"; import { huga } from "./js/file.js"; + import { testVector3 } from "./js/file.js"; + import { testColorTag } from "./js/file.js"; + import { testStructs } from "./js/file.js"; //hoge(); //huga(); @@ -20,6 +23,10 @@ testNullableFloatWithValues(); testNullableFloatWithNulls(); + testVector3(); + testColorTag(); + testStructs(); +
diff --git a/sandbox/SandboxWebApp/wwwroot/js/file.js b/sandbox/SandboxWebApp/wwwroot/js/file.js index cb8d029c..af55d1c4 100644 --- a/sandbox/SandboxWebApp/wwwroot/js/file.js +++ b/sandbox/SandboxWebApp/wwwroot/js/file.js @@ -4,6 +4,10 @@ import { SampleUnion1 } from "./memorypack/SampleUnion1.js"; import { SampleUnion2 } from "./memorypack/SampleUnion2.js"; import { Person } from "./memorypack/Person.js"; import { NullableFloatTest } from "./memorypack/NullableFloatTest.js"; +import { Vector3 } from "./memorypack/Vector3.js"; +import { ColorTag } from "./memorypack/ColorTag.js"; +import { BoundingBox } from "./memorypack/BoundingBox.js"; +import { GameObject } from "./memorypack/GameObject.js"; export async function hoge() { let person = new Person(); person.id = crypto.randomUUID(); @@ -18,7 +22,7 @@ export async function hoge() { let blob = new Blob([bin.buffer], { type: "application/x-memorypack" }); let response = await fetch("http://localhost:5260/api", { method: "POST", body: blob, headers: { "Content-Type": "application/x-memorypack" } }); let buffer = await response.arrayBuffer(); - // deserialize from ArrayBuffer + // deserialize from ArrayBuffer let person2 = Person.deserialize(buffer); } export async function huga() { @@ -189,6 +193,93 @@ export async function testNullableFloatWithNulls() { assertIsNull(output.nullableDouble); console.log("testNullableFloatWithNulls passed."); } +export async function testVector3() { + const v = new Vector3(); + v.x = 1.5; + v.y = -3.14; + v.z = 100.0; + const bin = Vector3.serialize(v); + const blob = new Blob([bin.buffer], { type: "application/x-memorypack" }); + const response = await fetch("http://localhost:5260/api/vector3", { method: "POST", body: blob, headers: { "Content-Type": "application/x-memorypack" } }); + if (response.status != 200) { + console.log(response.status); + return; + } + const buffer = await response.arrayBuffer(); + const v2 = Vector3.deserialize(buffer); + ok(v.x.toFixed(2), v2.x.toFixed(2)); + ok(v.y.toFixed(2), v2.y.toFixed(2)); + ok(v.z.toFixed(2), v2.z.toFixed(2)); + console.log("testVector3 passed."); +} +export async function testColorTag() { + const v = new ColorTag(); + v.name = "crimson"; + v.code = 0xDC143C; + const bin = ColorTag.serialize(v); + const blob = new Blob([bin.buffer], { type: "application/x-memorypack" }); + const response = await fetch("http://localhost:5260/api/colorTag", { method: "POST", body: blob, headers: { "Content-Type": "application/x-memorypack" } }); + if (response.status != 200) { + console.log(response.status); + return; + } + const buffer = await response.arrayBuffer(); + const v2 = ColorTag.deserialize(buffer); + ok(v.name, v2.name); + ok(v.code, v2.code); + console.log("testColorTag passed."); +} +// One test, one endpoint — covers every struct combination: +// • class with struct members (GameObject is a class) +// • unmanaged struct as field (position: Vector3) +// • unmanaged struct nested inside unmanaged struct (bounds: BoundingBox → min/max: Vector3) +// • managed struct as field (tag: ColorTag, has string? member) +// • null string inside managed struct field (tag.name = null) +export async function testStructs() { + const v = new GameObject(); + v.name = "hero"; + v.position = new Vector3(); + v.position.x = 10.5; + v.position.y = -20.25; + v.position.z = 300.0; + v.bounds = new BoundingBox(); + v.bounds.min = new Vector3(); + v.bounds.min.x = -1.0; + v.bounds.min.y = -2.0; + v.bounds.min.z = -3.0; + v.bounds.max = new Vector3(); + v.bounds.max.x = 1.0; + v.bounds.max.y = 2.0; + v.bounds.max.z = 3.0; + v.tag = new ColorTag(); + v.tag.name = null; // null string inside managed struct + v.tag.code = 0xFF4500; // orange-red + const bin = GameObject.serialize(v); + const blob = new Blob([bin.buffer], { type: "application/x-memorypack" }); + const response = await fetch("http://localhost:5260/api/gameObject", { method: "POST", body: blob, headers: { "Content-Type": "application/x-memorypack" } }); + if (response.status != 200) { + console.log("testStructs HTTP error:", response.status); + return; + } + const buffer = await response.arrayBuffer(); + const v2 = GameObject.deserialize(buffer); + ok(v.name, v2.name); + // unmanaged struct field + ok(v.position.x.toFixed(2), v2.position.x.toFixed(2)); + ok(v.position.y.toFixed(2), v2.position.y.toFixed(2)); + ok(v.position.z.toFixed(2), v2.position.z.toFixed(2)); + // unmanaged struct nested inside unmanaged struct + ok(v.bounds.min.x.toFixed(2), v2.bounds.min.x.toFixed(2)); + ok(v.bounds.min.y.toFixed(2), v2.bounds.min.y.toFixed(2)); + ok(v.bounds.min.z.toFixed(2), v2.bounds.min.z.toFixed(2)); + ok(v.bounds.max.x.toFixed(2), v2.bounds.max.x.toFixed(2)); + ok(v.bounds.max.y.toFixed(2), v2.bounds.max.y.toFixed(2)); + ok(v.bounds.max.z.toFixed(2), v2.bounds.max.z.toFixed(2)); + // managed struct field (non-nullable after fix, null string inside survives round-trip) + ok(v.tag.name, v2.tag.name); + ok(v.tag.code, v2.tag.code); + console.log("testStructs passed."); +} function assertNullableFloat(a, b) { ok(a.nullableFloat?.toFixed(1), b.nullableFloat?.toFixed(1)); ok(a.nullableDouble?.toFixed(1), b.nullableDouble?.toFixed(1)); diff --git a/sandbox/SandboxWebApp/wwwroot/js/file.js.map b/sandbox/SandboxWebApp/wwwroot/js/file.js.map index 866c7553..6dd8a697 100644 --- a/sandbox/SandboxWebApp/wwwroot/js/file.js.map +++ b/sandbox/SandboxWebApp/wwwroot/js/file.js.map @@ -1 +1 @@ -{"version":3,"file":"file.js","sourceRoot":"","sources":["file.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"file.js","sourceRoot":"","sources":["file.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/sandbox/SandboxWebApp/wwwroot/js/file.ts b/sandbox/SandboxWebApp/wwwroot/js/file.ts index 6d92b2c8..6518ca32 100644 --- a/sandbox/SandboxWebApp/wwwroot/js/file.ts +++ b/sandbox/SandboxWebApp/wwwroot/js/file.ts @@ -1,4 +1,4 @@ -import { MemoryPackWriter } from "./memorypack/MemoryPackWriter.js"; +import { MemoryPackWriter } from "./memorypack/MemoryPackWriter.js"; import { MemoryPackReader } from "./memorypack/MemoryPackReader.js"; import { AllConvertableType } from "./memorypack/AllConvertableType.js"; import { NoMarkByteEnum } from "./memorypack/NoMarkByteEnum.js"; @@ -11,6 +11,10 @@ import { SampleUnion2 } from "./memorypack/SampleUnion2.js"; import { Person } from "./memorypack/Person.js"; import { Gender } from "./memorypack/Gender.js"; import { NullableFloatTest } from "./memorypack/NullableFloatTest.js"; +import { Vector3 } from "./memorypack/Vector3.js"; +import { ColorTag } from "./memorypack/ColorTag.js"; +import { BoundingBox } from "./memorypack/BoundingBox.js"; +import { GameObject } from "./memorypack/GameObject.js"; export async function hoge() { @@ -35,7 +39,7 @@ export async function hoge() { let buffer = await response.arrayBuffer(); - // deserialize from ArrayBuffer + // deserialize from ArrayBuffer let person2 = Person.deserialize(buffer); @@ -253,6 +257,105 @@ export async function testNullableFloatWithNulls() { console.log("testNullableFloatWithNulls passed."); } +export async function testVector3() { + const v = new Vector3(); + v.x = 1.5; + v.y = -3.14; + v.z = 100.0; + + const bin = Vector3.serialize(v); + const blob = new Blob([bin.buffer], { type: "application/x-memorypack" }); + const response = await fetch("http://localhost:5260/api/vector3", + { method: "POST", body: blob, headers: { "Content-Type": "application/x-memorypack" } } + ); + + if (response.status != 200) { console.log(response.status); return; } + + const buffer = await response.arrayBuffer(); + const v2 = Vector3.deserialize(buffer); + + ok(v.x.toFixed(2), v2.x.toFixed(2)); + ok(v.y.toFixed(2), v2.y.toFixed(2)); + ok(v.z.toFixed(2), v2.z.toFixed(2)); + + console.log("testVector3 passed."); +} + +export async function testColorTag() { + const v = new ColorTag(); + v.name = "crimson"; + v.code = 0xDC143C; + + const bin = ColorTag.serialize(v); + const blob = new Blob([bin.buffer], { type: "application/x-memorypack" }); + const response = await fetch("http://localhost:5260/api/colorTag", + { method: "POST", body: blob, headers: { "Content-Type": "application/x-memorypack" } } + ); + + if (response.status != 200) { console.log(response.status); return; } + + const buffer = await response.arrayBuffer(); + const v2 = ColorTag.deserialize(buffer); + + ok(v.name, v2.name); + ok(v.code, v2.code); + + console.log("testColorTag passed."); +} + +export async function testStructs() { + const v = new GameObject(); + v.name = "hero"; + + v.position = new Vector3(); + v.position.x = 10.5; + v.position.y = -20.25; + v.position.z = 300.0; + + v.bounds = new BoundingBox(); + v.bounds.min = new Vector3(); + v.bounds.min.x = -1.0; + v.bounds.min.y = -2.0; + v.bounds.min.z = -3.0; + v.bounds.max = new Vector3(); + v.bounds.max.x = 1.0; + v.bounds.max.y = 2.0; + v.bounds.max.z = 3.0; + + v.tag = new ColorTag(); + v.tag.name = null; + v.tag.code = 0xFF4500; + + const bin = GameObject.serialize(v); + const blob = new Blob([bin.buffer], { type: "application/x-memorypack" }); + const response = await fetch("http://localhost:5260/api/gameObject", + { method: "POST", body: blob, headers: { "Content-Type": "application/x-memorypack" } } + ); + + if (response.status != 200) { console.log("testStructs HTTP error:", response.status); return; } + + const buffer = await response.arrayBuffer(); + const v2 = GameObject.deserialize(buffer); + + ok(v.name, v2!.name); + + ok(v.position.x.toFixed(2), v2!.position.x.toFixed(2)); + ok(v.position.y.toFixed(2), v2!.position.y.toFixed(2)); + ok(v.position.z.toFixed(2), v2!.position.z.toFixed(2)); + + ok(v.bounds.min.x.toFixed(2), v2!.bounds.min.x.toFixed(2)); + ok(v.bounds.min.y.toFixed(2), v2!.bounds.min.y.toFixed(2)); + ok(v.bounds.min.z.toFixed(2), v2!.bounds.min.z.toFixed(2)); + ok(v.bounds.max.x.toFixed(2), v2!.bounds.max.x.toFixed(2)); + ok(v.bounds.max.y.toFixed(2), v2!.bounds.max.y.toFixed(2)); + ok(v.bounds.max.z.toFixed(2), v2!.bounds.max.z.toFixed(2)); + + ok(v.tag.name, v2!.tag.name); + ok(v.tag.code, v2!.tag.code); + + console.log("testStructs passed."); +} + function assertNullableFloat(a: NullableFloatTest, b: NullableFloatTest): void { ok(a.nullableFloat?.toFixed(1), b.nullableFloat?.toFixed(1)) diff --git a/sandbox/SandboxWebApp/wwwroot/js/memorypack/AllConvertableType.js.map b/sandbox/SandboxWebApp/wwwroot/js/memorypack/AllConvertableType.js.map index 2059fdcd..abf8d350 100644 --- a/sandbox/SandboxWebApp/wwwroot/js/memorypack/AllConvertableType.js.map +++ b/sandbox/SandboxWebApp/wwwroot/js/memorypack/AllConvertableType.js.map @@ -1 +1 @@ -{"version":3,"file":"AllConvertableType.js","sourceRoot":"","sources":["AllConvertableType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,OAAO,kBAAkB;IAC3B,MAAM,CAAU;IAChB,MAAM,CAAS;IACf,OAAO,CAAS;IAChB,OAAO,CAAS;IAChB,KAAK,CAAS;IACd,MAAM,CAAS;IACf,QAAQ,CAAS;IACjB,MAAM,CAAS;IACf,OAAO,CAAS;IAChB,OAAO,CAAS;IAChB,QAAQ,CAAS;IACjB,MAAM,CAAS;IACf,MAAM,CAAO;IACb,OAAO,CAAiB;IACxB,OAAO,CAAqB;IAC5B,UAAU,CAAiB;IAC3B,UAAU,CAAgB;IAC1B,WAAW,CAAgB;IAC3B,WAAW,CAAgB;IAC3B,SAAS,CAAgB;IACzB,UAAU,CAAgB;IAC1B,YAAY,CAAgB;IAC5B,UAAU,CAAgB;IAC1B,WAAW,CAAgB;IAC3B,WAAW,CAAgB;IAC3B,YAAY,CAAgB;IAC5B,UAAU,CAAgB;IAC1B,UAAU,CAAc;IACxB,WAAW,CAAgB;IAC3B,WAAW,CAAgB;IAC3B,QAAQ,CAAgB;IACxB,OAAO,CAAoB;IAC3B,UAAU,CAAkB;IAC5B,aAAa,CAA2B;IACxC,MAAM,CAAkB;IACxB,YAAY,CAA6B;IACzC,KAAK,CAAqB;IAC1B,cAAc,CAAsE;IACpF,UAAU,CAAsC;IAChD,UAAU,CAAoC;IAC9C,WAAW,CAAoC;IAC/C,OAAO,CAAsB;IAC7B,MAAM,CAAoB;IAE1B;QACI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,sCAAsC,CAAC;QACrD,IAAI,CAAC,MAAM,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IAEvB,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAgC;QAC7C,MAAM,MAAM,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;QACpD,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAClC,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,MAAwB,EAAE,KAAgC;QAC3E,IAAI,KAAK,IAAI,IAAI,EAAE;YACf,MAAM,CAAC,qBAAqB,EAAE,CAAC;YAC/B,OAAO;SACV;QAED,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAC7B,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAChC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAChC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACjC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAChC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACpC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACjC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,CAAC,oBAAoB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC9C,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC5C,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC/C,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC7C,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC9C,MAAM,CAAC,oBAAoB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC/C,MAAM,CAAC,oBAAoB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAChD,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC3C,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC3C,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC9C,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACtC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9G,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9N,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9G,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;QACnH,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9G,YAAY,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAClD,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAEnD,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,KAA2C;QAC7D,MAAM,MAAM,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;QACpD,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACvC,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,MAAwB,EAAE,KAA2C;QAC3F,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IACzF,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,MAAmB;QAClC,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,MAAwB;QAC3C,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,mBAAmB,EAAE,CAAC;QACjD,IAAI,CAAC,EAAE,EAAE;YACL,OAAO,IAAI,CAAC;SACf;QAED,MAAM,KAAK,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACvC,IAAI,KAAK,IAAI,EAAE,EAAE;YACb,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;YACpC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;YAClC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YAClC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;YACnC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;YACjC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;YAClC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;YACrC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;YACnC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;YACpC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;YACrC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;YACtC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YACjC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YACjC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;YACnC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;YACpC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAChD,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAC9C,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC9C,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAC/C,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAC7C,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAC9C,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACjD,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAC/C,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAChD,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,mBAAmB,EAAE,CAAC;YACjD,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAClD,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC7C,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC7C,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAC/C,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAChD,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;YACrC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;YACxC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;YAClE,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YACtE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;YAC9D,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;YAChG,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;YAC3D,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACrL,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;YAChG,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC;YACrG,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YAChG,KAAK,CAAC,OAAO,GAAG,YAAY,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YACrD,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;SAErD;aACI,IAAI,KAAK,GAAG,EAAE,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,iGAAiG,CAAC,CAAC;SACtH;aACI;YACD,IAAI,KAAK,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC7B,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;YAClE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;YAChE,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;YAChE,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;YACjE,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC/D,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;YAChE,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;YACnE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;YACjE,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;YAClE,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,EAAE;gBAAE,OAAO,KAAK,CAAC;YACpE,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,EAAE;gBAAE,OAAO,KAAK,CAAC;YACrE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,EAAE;gBAAE,OAAO,KAAK,CAAC;YAChE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,EAAE;gBAAE,OAAO,KAAK,CAAC;YAChE,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,EAAE;gBAAE,OAAO,KAAK,CAAC;YAClE,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,EAAE;gBAAE,OAAO,KAAK,CAAC;YACnE,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,EAAE;gBAAE,OAAO,KAAK,CAAC;YAC/E,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,EAAE;gBAAE,OAAO,KAAK,CAAC;YAC7E,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,EAAE;gBAAE,OAAO,KAAK,CAAC;YAC7E,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,EAAE;gBAAE,OAAO,KAAK,CAAC;YAC9E,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,EAAE;gBAAE,OAAO,KAAK,CAAC;YAC5E,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,EAAE;gBAAE,OAAO,KAAK,CAAC;YAC7E,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,EAAE;gBAAE,OAAO,KAAK,CAAC;YAChF,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,EAAE;gBAAE,OAAO,KAAK,CAAC;YAC9E,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,EAAE;gBAAE,OAAO,KAAK,CAAC;YAC/E,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,EAAE;gBAAE,OAAO,KAAK,CAAC;YAChF,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,EAAE;gBAAE,OAAO,KAAK,CAAC;YACjF,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,EAAE;gBAAE,OAAO,KAAK,CAAC;YAC5E,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,EAAE;gBAAE,OAAO,KAAK,CAAC;YAC5E,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,EAAE;gBAAE,OAAO,KAAK,CAAC;YAC9E,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,EAAE;gBAAE,OAAO,KAAK,CAAC;YAC/E,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,EAAE;gBAAE,OAAO,KAAK,CAAC;YACpE,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,EAAE;gBAAE,OAAO,KAAK,CAAC;YACvE,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;YAAC,IAAI,KAAK,IAAI,EAAE;gBAAE,OAAO,KAAK,CAAC;YACjG,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YAAC,IAAI,KAAK,IAAI,EAAE;gBAAE,OAAO,KAAK,CAAC;YACrG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;YAAC,IAAI,KAAK,IAAI,EAAE;gBAAE,OAAO,KAAK,CAAC;YAC7F,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;YAAC,IAAI,KAAK,IAAI,EAAE;gBAAE,OAAO,KAAK,CAAC;YAC/H,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;YAAC,IAAI,KAAK,IAAI,EAAE;gBAAE,OAAO,KAAK,CAAC;YAC1F,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAAC,IAAI,KAAK,IAAI,EAAE;gBAAE,OAAO,KAAK,CAAC;YACpN,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;YAAC,IAAI,KAAK,IAAI,EAAE;gBAAE,OAAO,KAAK,CAAC;YAC/H,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC;YAAC,IAAI,KAAK,IAAI,EAAE;gBAAE,OAAO,KAAK,CAAC;YACpI,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YAAC,IAAI,KAAK,IAAI,EAAE;gBAAE,OAAO,KAAK,CAAC;YAC/H,KAAK,CAAC,OAAO,GAAG,YAAY,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAAC,IAAI,KAAK,IAAI,EAAE;gBAAE,OAAO,KAAK,CAAC;YACpF,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAAC,IAAI,KAAK,IAAI,EAAE;gBAAE,OAAO,KAAK,CAAC;SAEpF;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,MAAmB;QACvC,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,CAAC,oBAAoB,CAAC,MAAwB;QAChD,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,kBAAkB,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IAClF,CAAC;CACJ"} \ No newline at end of file +{"version":3,"file":"AllConvertableType.js","sourceRoot":"","sources":["AllConvertableType.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/sandbox/SandboxWebApp/wwwroot/js/memorypack/AllConvertableType.ts b/sandbox/SandboxWebApp/wwwroot/js/memorypack/AllConvertableType.ts index 5c573692..56f0f770 100644 --- a/sandbox/SandboxWebApp/wwwroot/js/memorypack/AllConvertableType.ts +++ b/sandbox/SandboxWebApp/wwwroot/js/memorypack/AllConvertableType.ts @@ -108,7 +108,6 @@ export class AllConvertableType { writer.writeNullObjectHeader(); return; } - writer.writeObjectHeader(43); writer.writeBoolean(value.myBool); writer.writeUint8(value.myByte); diff --git a/sandbox/SandboxWebApp/wwwroot/js/memorypack/ArrayGenericsCheck.js.map b/sandbox/SandboxWebApp/wwwroot/js/memorypack/ArrayGenericsCheck.js.map index 44953913..1933db71 100644 --- a/sandbox/SandboxWebApp/wwwroot/js/memorypack/ArrayGenericsCheck.js.map +++ b/sandbox/SandboxWebApp/wwwroot/js/memorypack/ArrayGenericsCheck.js.map @@ -1 +1 @@ -{"version":3,"file":"ArrayGenericsCheck.js","sourceRoot":"","sources":["ArrayGenericsCheck.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ArrayGenericsCheck.js","sourceRoot":"","sources":["ArrayGenericsCheck.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/sandbox/SandboxWebApp/wwwroot/js/memorypack/ArrayGenericsCheck.ts b/sandbox/SandboxWebApp/wwwroot/js/memorypack/ArrayGenericsCheck.ts index e4ab4a64..085cacd6 100644 --- a/sandbox/SandboxWebApp/wwwroot/js/memorypack/ArrayGenericsCheck.ts +++ b/sandbox/SandboxWebApp/wwwroot/js/memorypack/ArrayGenericsCheck.ts @@ -27,7 +27,6 @@ export class ArrayGenericsCheck { writer.writeNullObjectHeader(); return; } - writer.writeObjectHeader(3); writer.writeArray(value.array1, (writer, x) => NestedObject.serializeCore(writer, x)); writer.writeArray(value.array2, (writer, x) => IMogeUnion.serializeCore(writer, x)); diff --git a/sandbox/SandboxWebApp/wwwroot/js/memorypack/BoundingBox.js b/sandbox/SandboxWebApp/wwwroot/js/memorypack/BoundingBox.js new file mode 100644 index 00000000..976a8c53 --- /dev/null +++ b/sandbox/SandboxWebApp/wwwroot/js/memorypack/BoundingBox.js @@ -0,0 +1,44 @@ +import { MemoryPackWriter } from "./MemoryPackWriter.js"; +import { MemoryPackReader } from "./MemoryPackReader.js"; +import { Vector3 } from "./Vector3.js"; +export class BoundingBox { + min; + max; + constructor() { + this.min = new Vector3(); + this.max = new Vector3(); + } + static serialize(value) { + const writer = MemoryPackWriter.getSharedInstance(); + this.serializeCore(writer, value); + return writer.toArray(); + } + static serializeCore(writer, value) { + Vector3.serializeCore(writer, value.min); + Vector3.serializeCore(writer, value.max); + } + static serializeArray(value) { + const writer = MemoryPackWriter.getSharedInstance(); + this.serializeArrayCore(writer, value); + return writer.toArray(); + } + static serializeArrayCore(writer, value) { + writer.writeArray(value, (writer, x) => BoundingBox.serializeCore(writer, x)); + } + static deserialize(buffer) { + return this.deserializeCore(new MemoryPackReader(buffer)); + } + static deserializeCore(reader) { + const value = new BoundingBox(); + value.min = Vector3.deserializeCore(reader); + value.max = Vector3.deserializeCore(reader); + return value; + } + static deserializeArray(buffer) { + return this.deserializeArrayCore(new MemoryPackReader(buffer)); + } + static deserializeArrayCore(reader) { + return reader.readArray(reader => BoundingBox.deserializeCore(reader)); + } +} +//# sourceMappingURL=BoundingBox.js.map \ No newline at end of file diff --git a/sandbox/SandboxWebApp/wwwroot/js/memorypack/BoundingBox.js.map b/sandbox/SandboxWebApp/wwwroot/js/memorypack/BoundingBox.js.map new file mode 100644 index 00000000..d5a70ec3 --- /dev/null +++ b/sandbox/SandboxWebApp/wwwroot/js/memorypack/BoundingBox.js.map @@ -0,0 +1 @@ +{"version":3,"file":"BoundingBox.js","sourceRoot":"","sources":["BoundingBox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,OAAO,WAAW;IACpB,GAAG,CAAU;IACb,GAAG,CAAU;IAEb;QACI,IAAI,CAAC,GAAG,GAAG,IAAI,OAAO,EAAE,CAAC;QACzB,IAAI,CAAC,GAAG,GAAG,IAAI,OAAO,EAAE,CAAC;IAE7B,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAkB;QAC/B,MAAM,MAAM,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;QACpD,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAClC,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,MAAwB,EAAE,KAAkB;QAC7D,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QACzC,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAE7C,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,KAA2B;QAC7C,MAAM,MAAM,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;QACpD,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACvC,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,MAAwB,EAAE,KAA2B;QAC3E,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,MAAmB;QAClC,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,MAAwB;QAC3C,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC;QAChC,KAAK,CAAC,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC5C,KAAK,CAAC,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAE5C,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,MAAmB;QACvC,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,CAAC,oBAAoB,CAAC,MAAwB;QAChD,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3E,CAAC;CACJ"} \ No newline at end of file diff --git a/sandbox/SandboxWebApp/wwwroot/js/memorypack/BoundingBox.ts b/sandbox/SandboxWebApp/wwwroot/js/memorypack/BoundingBox.ts new file mode 100644 index 00000000..a7216852 --- /dev/null +++ b/sandbox/SandboxWebApp/wwwroot/js/memorypack/BoundingBox.ts @@ -0,0 +1,56 @@ +import { MemoryPackWriter } from "./MemoryPackWriter.js"; +import { MemoryPackReader } from "./MemoryPackReader.js"; +import { Vector3 } from "./Vector3.js"; + +export class BoundingBox { + min: Vector3; + max: Vector3; + + constructor() { + this.min = new Vector3(); + this.max = new Vector3(); + + } + + static serialize(value: BoundingBox): Uint8Array { + const writer = MemoryPackWriter.getSharedInstance(); + this.serializeCore(writer, value); + return writer.toArray(); + } + + static serializeCore(writer: MemoryPackWriter, value: BoundingBox): void { + Vector3.serializeCore(writer, value.min); + Vector3.serializeCore(writer, value.max); + + } + + static serializeArray(value: BoundingBox[] | null): Uint8Array { + const writer = MemoryPackWriter.getSharedInstance(); + this.serializeArrayCore(writer, value); + return writer.toArray(); + } + + static serializeArrayCore(writer: MemoryPackWriter, value: BoundingBox[] | null): void { + writer.writeArray(value, (writer, x) => BoundingBox.serializeCore(writer, x)); + } + + static deserialize(buffer: ArrayBuffer): BoundingBox { + return this.deserializeCore(new MemoryPackReader(buffer)); + } + + static deserializeCore(reader: MemoryPackReader): BoundingBox { + const value = new BoundingBox(); + value.min = Vector3.deserializeCore(reader); + value.max = Vector3.deserializeCore(reader); + + return value; + } + + static deserializeArray(buffer: ArrayBuffer): BoundingBox[] | null { + return this.deserializeArrayCore(new MemoryPackReader(buffer)); + } + + static deserializeArrayCore(reader: MemoryPackReader): BoundingBox[] | null { + return reader.readArray(reader => BoundingBox.deserializeCore(reader)); + } +} diff --git a/sandbox/SandboxWebApp/wwwroot/js/memorypack/ColorTag.js b/sandbox/SandboxWebApp/wwwroot/js/memorypack/ColorTag.js new file mode 100644 index 00000000..ee7ab01c --- /dev/null +++ b/sandbox/SandboxWebApp/wwwroot/js/memorypack/ColorTag.js @@ -0,0 +1,63 @@ +import { MemoryPackWriter } from "./MemoryPackWriter.js"; +import { MemoryPackReader } from "./MemoryPackReader.js"; +export class ColorTag { + name; + code; + constructor() { + this.name = null; + this.code = 0; + } + static serialize(value) { + const writer = MemoryPackWriter.getSharedInstance(); + this.serializeCore(writer, value); + return writer.toArray(); + } + static serializeCore(writer, value) { + writer.writeObjectHeader(2); + writer.writeString(value.name); + writer.writeInt32(value.code); + } + static serializeArray(value) { + const writer = MemoryPackWriter.getSharedInstance(); + this.serializeArrayCore(writer, value); + return writer.toArray(); + } + static serializeArrayCore(writer, value) { + writer.writeArray(value, (writer, x) => ColorTag.serializeCore(writer, x)); + } + static deserialize(buffer) { + return this.deserializeCore(new MemoryPackReader(buffer)); + } + static deserializeCore(reader) { + const [ok, count] = reader.tryReadObjectHeader(); + if (!ok) { + throw new Error("Cannot deserialize null into struct ColorTag."); + } + const value = new ColorTag(); + if (count == 2) { + value.name = reader.readString(); + value.code = reader.readInt32(); + } + else if (count > 2) { + throw new Error("Current object's property count is larger than type schema, can't deserialize about versioning."); + } + else { + if (count == 0) + return value; + value.name = reader.readString(); + if (count == 1) + return value; + value.code = reader.readInt32(); + if (count == 2) + return value; + } + return value; + } + static deserializeArray(buffer) { + return this.deserializeArrayCore(new MemoryPackReader(buffer)); + } + static deserializeArrayCore(reader) { + return reader.readArray(reader => ColorTag.deserializeCore(reader)); + } +} +//# sourceMappingURL=ColorTag.js.map \ No newline at end of file diff --git a/sandbox/SandboxWebApp/wwwroot/js/memorypack/ColorTag.js.map b/sandbox/SandboxWebApp/wwwroot/js/memorypack/ColorTag.js.map new file mode 100644 index 00000000..1c99cb64 --- /dev/null +++ b/sandbox/SandboxWebApp/wwwroot/js/memorypack/ColorTag.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ColorTag.js","sourceRoot":"","sources":["ColorTag.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/sandbox/SandboxWebApp/wwwroot/js/memorypack/ColorTag.ts b/sandbox/SandboxWebApp/wwwroot/js/memorypack/ColorTag.ts new file mode 100644 index 00000000..b44e0782 --- /dev/null +++ b/sandbox/SandboxWebApp/wwwroot/js/memorypack/ColorTag.ts @@ -0,0 +1,72 @@ +import { MemoryPackWriter } from "./MemoryPackWriter.js"; +import { MemoryPackReader } from "./MemoryPackReader.js"; + +export class ColorTag { + name: string | null; + code: number; + + constructor() { + this.name = null; + this.code = 0; + + } + + static serialize(value: ColorTag): Uint8Array { + const writer = MemoryPackWriter.getSharedInstance(); + this.serializeCore(writer, value); + return writer.toArray(); + } + + static serializeCore(writer: MemoryPackWriter, value: ColorTag): void { + writer.writeObjectHeader(2); + writer.writeString(value.name); + writer.writeInt32(value.code); + + } + + static serializeArray(value: (ColorTag)[] | null): Uint8Array { + const writer = MemoryPackWriter.getSharedInstance(); + this.serializeArrayCore(writer, value); + return writer.toArray(); + } + + static serializeArrayCore(writer: MemoryPackWriter, value: (ColorTag)[] | null): void { + writer.writeArray(value, (writer, x) => ColorTag.serializeCore(writer, x)); + } + + static deserialize(buffer: ArrayBuffer): ColorTag { + return this.deserializeCore(new MemoryPackReader(buffer)); + } + + static deserializeCore(reader: MemoryPackReader): ColorTag { + const [ok, count] = reader.tryReadObjectHeader(); + if (!ok) { + throw new Error("Cannot deserialize null into struct ColorTag."); + } + + const value = new ColorTag(); + if (count == 2) { + value.name = reader.readString(); + value.code = reader.readInt32(); + + } + else if (count > 2) { + throw new Error("Current object's property count is larger than type schema, can't deserialize about versioning."); + } + else { + if (count == 0) return value; + value.name = reader.readString(); if (count == 1) return value; + value.code = reader.readInt32(); if (count == 2) return value; + + } + return value; + } + + static deserializeArray(buffer: ArrayBuffer): (ColorTag)[] | null { + return this.deserializeArrayCore(new MemoryPackReader(buffer)); + } + + static deserializeArrayCore(reader: MemoryPackReader): (ColorTag)[] | null { + return reader.readArray(reader => ColorTag.deserializeCore(reader)); + } +} diff --git a/sandbox/SandboxWebApp/wwwroot/js/memorypack/FooBarBazDayonDattayon.js.map b/sandbox/SandboxWebApp/wwwroot/js/memorypack/FooBarBazDayonDattayon.js.map index 890fabec..49d2eeb2 100644 --- a/sandbox/SandboxWebApp/wwwroot/js/memorypack/FooBarBazDayonDattayon.js.map +++ b/sandbox/SandboxWebApp/wwwroot/js/memorypack/FooBarBazDayonDattayon.js.map @@ -1 +1 @@ -{"version":3,"file":"FooBarBazDayonDattayon.js","sourceRoot":"","sources":["FooBarBazDayonDattayon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,OAAO,sBAAsB;IAC/B,UAAU,CAAS;IAEnB;QACI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;IAExB,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAoC;QACjD,MAAM,MAAM,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;QACpD,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAClC,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,MAAwB,EAAE,KAAoC;QAC/E,IAAI,KAAK,IAAI,IAAI,EAAE;YACf,MAAM,CAAC,qBAAqB,EAAE,CAAC;YAC/B,OAAO;SACV;QAED,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAExC,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,KAA+C;QACjE,MAAM,MAAM,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;QACpD,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACvC,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,MAAwB,EAAE,KAA+C;QAC/F,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,sBAAsB,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7F,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,MAAmB;QAClC,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,MAAwB;QAC3C,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,mBAAmB,EAAE,CAAC;QACjD,IAAI,CAAC,EAAE,EAAE;YACL,OAAO,IAAI,CAAC;SACf;QAED,MAAM,KAAK,GAAG,IAAI,sBAAsB,EAAE,CAAC;QAC3C,IAAI,KAAK,IAAI,CAAC,EAAE;YACZ,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;SAEzC;aACI,IAAI,KAAK,GAAG,CAAC,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,iGAAiG,CAAC,CAAC;SACtH;aACI;YACD,IAAI,KAAK,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC7B,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;SAEvE;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,MAAmB;QACvC,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,CAAC,oBAAoB,CAAC,MAAwB;QAChD,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,sBAAsB,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IACtF,CAAC;CACJ"} \ No newline at end of file +{"version":3,"file":"FooBarBazDayonDattayon.js","sourceRoot":"","sources":["FooBarBazDayonDattayon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,OAAO,sBAAsB;IAC/B,UAAU,CAAS;IAEnB;QACI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;IAExB,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAoC;QACjD,MAAM,MAAM,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;QACpD,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAClC,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,MAAwB,EAAE,KAAoC;QAC/E,IAAI,KAAK,IAAI,IAAI,EAAE;YACf,MAAM,CAAC,qBAAqB,EAAE,CAAC;YAC/B,OAAO;SACV;QACD,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAExC,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,KAA+C;QACjE,MAAM,MAAM,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;QACpD,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACvC,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,MAAwB,EAAE,KAA+C;QAC/F,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,sBAAsB,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7F,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,MAAmB;QAClC,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,MAAwB;QAC3C,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,mBAAmB,EAAE,CAAC;QACjD,IAAI,CAAC,EAAE,EAAE;YACL,OAAO,IAAI,CAAC;SACf;QAED,MAAM,KAAK,GAAG,IAAI,sBAAsB,EAAE,CAAC;QAC3C,IAAI,KAAK,IAAI,CAAC,EAAE;YACZ,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;SAEzC;aACI,IAAI,KAAK,GAAG,CAAC,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,iGAAiG,CAAC,CAAC;SACtH;aACI;YACD,IAAI,KAAK,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC7B,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;SAEvE;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,MAAmB;QACvC,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,CAAC,oBAAoB,CAAC,MAAwB;QAChD,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,sBAAsB,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IACtF,CAAC;CACJ"} \ No newline at end of file diff --git a/sandbox/SandboxWebApp/wwwroot/js/memorypack/FooBarBazDayonDattayon.ts b/sandbox/SandboxWebApp/wwwroot/js/memorypack/FooBarBazDayonDattayon.ts index b86606a9..1d757e42 100644 --- a/sandbox/SandboxWebApp/wwwroot/js/memorypack/FooBarBazDayonDattayon.ts +++ b/sandbox/SandboxWebApp/wwwroot/js/memorypack/FooBarBazDayonDattayon.ts @@ -20,7 +20,6 @@ export class FooBarBazDayonDattayon { writer.writeNullObjectHeader(); return; } - writer.writeObjectHeader(1); writer.writeInt32(value.myProperty); diff --git a/sandbox/SandboxWebApp/wwwroot/js/memorypack/GameObject.js b/sandbox/SandboxWebApp/wwwroot/js/memorypack/GameObject.js new file mode 100644 index 00000000..c6efb7f0 --- /dev/null +++ b/sandbox/SandboxWebApp/wwwroot/js/memorypack/GameObject.js @@ -0,0 +1,84 @@ +import { MemoryPackWriter } from "./MemoryPackWriter.js"; +import { MemoryPackReader } from "./MemoryPackReader.js"; +import { Vector3 } from "./Vector3.js"; +import { BoundingBox } from "./BoundingBox.js"; +import { ColorTag } from "./ColorTag.js"; +export class GameObject { + name; + position; + bounds; + tag; + constructor() { + this.name = null; + this.position = new Vector3(); + this.bounds = new BoundingBox(); + this.tag = new ColorTag(); + } + static serialize(value) { + const writer = MemoryPackWriter.getSharedInstance(); + this.serializeCore(writer, value); + return writer.toArray(); + } + static serializeCore(writer, value) { + if (value == null) { + writer.writeNullObjectHeader(); + return; + } + writer.writeObjectHeader(4); + writer.writeString(value.name); + Vector3.serializeCore(writer, value.position); + BoundingBox.serializeCore(writer, value.bounds); + ColorTag.serializeCore(writer, value.tag); + } + static serializeArray(value) { + const writer = MemoryPackWriter.getSharedInstance(); + this.serializeArrayCore(writer, value); + return writer.toArray(); + } + static serializeArrayCore(writer, value) { + writer.writeArray(value, (writer, x) => GameObject.serializeCore(writer, x)); + } + static deserialize(buffer) { + return this.deserializeCore(new MemoryPackReader(buffer)); + } + static deserializeCore(reader) { + const [ok, count] = reader.tryReadObjectHeader(); + if (!ok) { + return null; + } + const value = new GameObject(); + if (count == 4) { + value.name = reader.readString(); + value.position = Vector3.deserializeCore(reader); + value.bounds = BoundingBox.deserializeCore(reader); + value.tag = ColorTag.deserializeCore(reader); + } + else if (count > 4) { + throw new Error("Current object's property count is larger than type schema, can't deserialize about versioning."); + } + else { + if (count == 0) + return value; + value.name = reader.readString(); + if (count == 1) + return value; + value.position = Vector3.deserializeCore(reader); + if (count == 2) + return value; + value.bounds = BoundingBox.deserializeCore(reader); + if (count == 3) + return value; + value.tag = ColorTag.deserializeCore(reader); + if (count == 4) + return value; + } + return value; + } + static deserializeArray(buffer) { + return this.deserializeArrayCore(new MemoryPackReader(buffer)); + } + static deserializeArrayCore(reader) { + return reader.readArray(reader => GameObject.deserializeCore(reader)); + } +} +//# sourceMappingURL=GameObject.js.map \ No newline at end of file diff --git a/sandbox/SandboxWebApp/wwwroot/js/memorypack/GameObject.js.map b/sandbox/SandboxWebApp/wwwroot/js/memorypack/GameObject.js.map new file mode 100644 index 00000000..0cec7d81 --- /dev/null +++ b/sandbox/SandboxWebApp/wwwroot/js/memorypack/GameObject.js.map @@ -0,0 +1 @@ +{"version":3,"file":"GameObject.js","sourceRoot":"","sources":["GameObject.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/sandbox/SandboxWebApp/wwwroot/js/memorypack/GameObject.ts b/sandbox/SandboxWebApp/wwwroot/js/memorypack/GameObject.ts new file mode 100644 index 00000000..5ec3304b --- /dev/null +++ b/sandbox/SandboxWebApp/wwwroot/js/memorypack/GameObject.ts @@ -0,0 +1,89 @@ +import { MemoryPackWriter } from "./MemoryPackWriter.js"; +import { MemoryPackReader } from "./MemoryPackReader.js"; +import { Vector3 } from "./Vector3.js"; +import { BoundingBox } from "./BoundingBox.js"; +import { ColorTag } from "./ColorTag.js"; + +export class GameObject { + name: string | null; + position: Vector3; + bounds: BoundingBox; + tag: ColorTag; + + constructor() { + this.name = null; + this.position = new Vector3(); + this.bounds = new BoundingBox(); + this.tag = new ColorTag(); + + } + + static serialize(value: GameObject | null): Uint8Array { + const writer = MemoryPackWriter.getSharedInstance(); + this.serializeCore(writer, value); + return writer.toArray(); + } + + static serializeCore(writer: MemoryPackWriter, value: GameObject | null): void { + if (value == null) { + writer.writeNullObjectHeader(); + return; + } + writer.writeObjectHeader(4); + writer.writeString(value.name); + Vector3.serializeCore(writer, value.position); + BoundingBox.serializeCore(writer, value.bounds); + ColorTag.serializeCore(writer, value.tag); + + } + + static serializeArray(value: (GameObject | null)[] | null): Uint8Array { + const writer = MemoryPackWriter.getSharedInstance(); + this.serializeArrayCore(writer, value); + return writer.toArray(); + } + + static serializeArrayCore(writer: MemoryPackWriter, value: (GameObject | null)[] | null): void { + writer.writeArray(value, (writer, x) => GameObject.serializeCore(writer, x)); + } + + static deserialize(buffer: ArrayBuffer): GameObject | null { + return this.deserializeCore(new MemoryPackReader(buffer)); + } + + static deserializeCore(reader: MemoryPackReader): GameObject | null { + const [ok, count] = reader.tryReadObjectHeader(); + if (!ok) { + return null; + } + + const value = new GameObject(); + if (count == 4) { + value.name = reader.readString(); + value.position = Vector3.deserializeCore(reader); + value.bounds = BoundingBox.deserializeCore(reader); + value.tag = ColorTag.deserializeCore(reader); + + } + else if (count > 4) { + throw new Error("Current object's property count is larger than type schema, can't deserialize about versioning."); + } + else { + if (count == 0) return value; + value.name = reader.readString(); if (count == 1) return value; + value.position = Vector3.deserializeCore(reader); if (count == 2) return value; + value.bounds = BoundingBox.deserializeCore(reader); if (count == 3) return value; + value.tag = ColorTag.deserializeCore(reader); if (count == 4) return value; + + } + return value; + } + + static deserializeArray(buffer: ArrayBuffer): (GameObject | null)[] | null { + return this.deserializeArrayCore(new MemoryPackReader(buffer)); + } + + static deserializeArrayCore(reader: MemoryPackReader): (GameObject | null)[] | null { + return reader.readArray(reader => GameObject.deserializeCore(reader)); + } +} diff --git a/sandbox/SandboxWebApp/wwwroot/js/memorypack/NestedObject.js.map b/sandbox/SandboxWebApp/wwwroot/js/memorypack/NestedObject.js.map index aa4a8286..6af92187 100644 --- a/sandbox/SandboxWebApp/wwwroot/js/memorypack/NestedObject.js.map +++ b/sandbox/SandboxWebApp/wwwroot/js/memorypack/NestedObject.js.map @@ -1 +1 @@ -{"version":3,"file":"NestedObject.js","sourceRoot":"","sources":["NestedObject.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"NestedObject.js","sourceRoot":"","sources":["NestedObject.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/sandbox/SandboxWebApp/wwwroot/js/memorypack/NestedObject.ts b/sandbox/SandboxWebApp/wwwroot/js/memorypack/NestedObject.ts index 98aa825e..e9a57711 100644 --- a/sandbox/SandboxWebApp/wwwroot/js/memorypack/NestedObject.ts +++ b/sandbox/SandboxWebApp/wwwroot/js/memorypack/NestedObject.ts @@ -22,7 +22,6 @@ export class NestedObject { writer.writeNullObjectHeader(); return; } - writer.writeObjectHeader(2); writer.writeInt32(value.myProperty); writer.writeString(value.myProperty2); diff --git a/sandbox/SandboxWebApp/wwwroot/js/memorypack/NullableFloatTest.js.map b/sandbox/SandboxWebApp/wwwroot/js/memorypack/NullableFloatTest.js.map index 19763acd..fc74625e 100644 --- a/sandbox/SandboxWebApp/wwwroot/js/memorypack/NullableFloatTest.js.map +++ b/sandbox/SandboxWebApp/wwwroot/js/memorypack/NullableFloatTest.js.map @@ -1 +1 @@ -{"version":3,"file":"NullableFloatTest.js","sourceRoot":"","sources":["NullableFloatTest.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"NullableFloatTest.js","sourceRoot":"","sources":["NullableFloatTest.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/sandbox/SandboxWebApp/wwwroot/js/memorypack/NullableFloatTest.ts b/sandbox/SandboxWebApp/wwwroot/js/memorypack/NullableFloatTest.ts index a3572370..77807863 100644 --- a/sandbox/SandboxWebApp/wwwroot/js/memorypack/NullableFloatTest.ts +++ b/sandbox/SandboxWebApp/wwwroot/js/memorypack/NullableFloatTest.ts @@ -22,7 +22,6 @@ export class NullableFloatTest { writer.writeNullObjectHeader(); return; } - writer.writeObjectHeader(2); writer.writeNullableFloat32(value.nullableFloat); writer.writeNullableFloat64(value.nullableDouble); diff --git a/sandbox/SandboxWebApp/wwwroot/js/memorypack/Person.js.map b/sandbox/SandboxWebApp/wwwroot/js/memorypack/Person.js.map index 935c266e..780241ab 100644 --- a/sandbox/SandboxWebApp/wwwroot/js/memorypack/Person.js.map +++ b/sandbox/SandboxWebApp/wwwroot/js/memorypack/Person.js.map @@ -1 +1 @@ -{"version":3,"file":"Person.js","sourceRoot":"","sources":["Person.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Person.js","sourceRoot":"","sources":["Person.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/sandbox/SandboxWebApp/wwwroot/js/memorypack/Person.ts b/sandbox/SandboxWebApp/wwwroot/js/memorypack/Person.ts index 1c86d5f5..90214915 100644 --- a/sandbox/SandboxWebApp/wwwroot/js/memorypack/Person.ts +++ b/sandbox/SandboxWebApp/wwwroot/js/memorypack/Person.ts @@ -33,7 +33,6 @@ export class Person { writer.writeNullObjectHeader(); return; } - writer.writeObjectHeader(7); writer.writeGuid(value.id); writer.writeInt32(value.age); diff --git a/sandbox/SandboxWebApp/wwwroot/js/memorypack/Rec.js.map b/sandbox/SandboxWebApp/wwwroot/js/memorypack/Rec.js.map index 7c700055..1f5a93fc 100644 --- a/sandbox/SandboxWebApp/wwwroot/js/memorypack/Rec.js.map +++ b/sandbox/SandboxWebApp/wwwroot/js/memorypack/Rec.js.map @@ -1 +1 @@ -{"version":3,"file":"Rec.js","sourceRoot":"","sources":["Rec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,OAAO,GAAG;IACZ,EAAE,CAAa;IAEf;QACI,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;IAEnB,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAiB;QAC9B,MAAM,MAAM,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;QACpD,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAClC,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,MAAwB,EAAE,KAAiB;QAC5D,IAAI,KAAK,IAAI,IAAI,EAAE;YACf,MAAM,CAAC,qBAAqB,EAAE,CAAC;YAC/B,OAAO;SACV;QAED,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAC5B,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IAExC,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,KAA4B;QAC9C,MAAM,MAAM,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;QACpD,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACvC,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,MAAwB,EAAE,KAA4B;QAC5E,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,MAAmB;QAClC,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,MAAwB;QAC3C,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,mBAAmB,EAAE,CAAC;QACjD,IAAI,CAAC,EAAE,EAAE;YACL,OAAO,IAAI,CAAC;SACf;QAED,MAAM,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;QACxB,IAAI,KAAK,IAAI,CAAC,EAAE;YACZ,KAAK,CAAC,EAAE,GAAG,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;SAE1C;aACI,IAAI,KAAK,GAAG,CAAC,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,iGAAiG,CAAC,CAAC;SACtH;aACI;YACD,IAAI,KAAK,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC7B,KAAK,CAAC,EAAE,GAAG,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAAC,IAAI,KAAK,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;SAExE;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,MAAmB;QACvC,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,CAAC,oBAAoB,CAAC,MAAwB;QAChD,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IACnE,CAAC;CACJ"} \ No newline at end of file +{"version":3,"file":"Rec.js","sourceRoot":"","sources":["Rec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,OAAO,GAAG;IACZ,EAAE,CAAa;IAEf;QACI,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;IAEnB,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAiB;QAC9B,MAAM,MAAM,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;QACpD,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAClC,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,MAAwB,EAAE,KAAiB;QAC5D,IAAI,KAAK,IAAI,IAAI,EAAE;YACf,MAAM,CAAC,qBAAqB,EAAE,CAAC;YAC/B,OAAO;SACV;QACD,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAC5B,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IAExC,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,KAA4B;QAC9C,MAAM,MAAM,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;QACpD,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACvC,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,MAAwB,EAAE,KAA4B;QAC5E,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,MAAmB;QAClC,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,MAAwB;QAC3C,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,mBAAmB,EAAE,CAAC;QACjD,IAAI,CAAC,EAAE,EAAE;YACL,OAAO,IAAI,CAAC;SACf;QAED,MAAM,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;QACxB,IAAI,KAAK,IAAI,CAAC,EAAE;YACZ,KAAK,CAAC,EAAE,GAAG,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;SAE1C;aACI,IAAI,KAAK,GAAG,CAAC,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,iGAAiG,CAAC,CAAC;SACtH;aACI;YACD,IAAI,KAAK,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC7B,KAAK,CAAC,EAAE,GAAG,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAAC,IAAI,KAAK,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;SAExE;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,MAAmB;QACvC,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,CAAC,oBAAoB,CAAC,MAAwB;QAChD,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IACnE,CAAC;CACJ"} \ No newline at end of file diff --git a/sandbox/SandboxWebApp/wwwroot/js/memorypack/Rec.ts b/sandbox/SandboxWebApp/wwwroot/js/memorypack/Rec.ts index 2a24e39b..dd7f4b49 100644 --- a/sandbox/SandboxWebApp/wwwroot/js/memorypack/Rec.ts +++ b/sandbox/SandboxWebApp/wwwroot/js/memorypack/Rec.ts @@ -20,7 +20,6 @@ export class Rec { writer.writeNullObjectHeader(); return; } - writer.writeObjectHeader(1); Rec.serializeCore(writer, value.id); diff --git a/sandbox/SandboxWebApp/wwwroot/js/memorypack/SampleLarge.js.map b/sandbox/SandboxWebApp/wwwroot/js/memorypack/SampleLarge.js.map index 219eb3e1..748de62d 100644 --- a/sandbox/SandboxWebApp/wwwroot/js/memorypack/SampleLarge.js.map +++ b/sandbox/SandboxWebApp/wwwroot/js/memorypack/SampleLarge.js.map @@ -1 +1 @@ -{"version":3,"file":"SampleLarge.js","sourceRoot":"","sources":["SampleLarge.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"SampleLarge.js","sourceRoot":"","sources":["SampleLarge.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/sandbox/SandboxWebApp/wwwroot/js/memorypack/SampleLarge.ts b/sandbox/SandboxWebApp/wwwroot/js/memorypack/SampleLarge.ts index dca2b305..957b3d75 100644 --- a/sandbox/SandboxWebApp/wwwroot/js/memorypack/SampleLarge.ts +++ b/sandbox/SandboxWebApp/wwwroot/js/memorypack/SampleLarge.ts @@ -42,7 +42,6 @@ export class SampleLarge { writer.writeNullObjectHeader(); return; } - writer.writeObjectHeader(12); writer.writeString(value._id); writer.writeString(value.author); diff --git a/sandbox/SandboxWebApp/wwwroot/js/memorypack/SampleUnion1.js.map b/sandbox/SandboxWebApp/wwwroot/js/memorypack/SampleUnion1.js.map index b92551c7..1d21a1c9 100644 --- a/sandbox/SandboxWebApp/wwwroot/js/memorypack/SampleUnion1.js.map +++ b/sandbox/SandboxWebApp/wwwroot/js/memorypack/SampleUnion1.js.map @@ -1 +1 @@ -{"version":3,"file":"SampleUnion1.js","sourceRoot":"","sources":["SampleUnion1.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD,MAAM,OAAO,YAAY;IACrB,UAAU,CAAgB;IAE1B;QACI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IAE3B,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAA0B;QACvC,MAAM,MAAM,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;QACpD,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAClC,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,MAAwB,EAAE,KAA0B;QACrE,IAAI,KAAK,IAAI,IAAI,EAAE;YACf,MAAM,CAAC,qBAAqB,EAAE,CAAC;YAC/B,OAAO;SACV;QAED,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAEhD,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,KAAqC;QACvD,MAAM,MAAM,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;QACpD,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACvC,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,MAAwB,EAAE,KAAqC;QACrF,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,MAAmB;QAClC,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,MAAwB;QAC3C,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,mBAAmB,EAAE,CAAC;QACjD,IAAI,CAAC,EAAE,EAAE;YACL,OAAO,IAAI,CAAC;SACf;QAED,MAAM,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;QACjC,IAAI,KAAK,IAAI,CAAC,EAAE;YACZ,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;SAEjD;aACI,IAAI,KAAK,GAAG,CAAC,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,iGAAiG,CAAC,CAAC;SACtH;aACI;YACD,IAAI,KAAK,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC7B,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;SAE/E;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,MAAmB;QACvC,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,CAAC,oBAAoB,CAAC,MAAwB;QAChD,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5E,CAAC;CACJ"} \ No newline at end of file +{"version":3,"file":"SampleUnion1.js","sourceRoot":"","sources":["SampleUnion1.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD,MAAM,OAAO,YAAY;IACrB,UAAU,CAAgB;IAE1B;QACI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IAE3B,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAA0B;QACvC,MAAM,MAAM,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;QACpD,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAClC,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,MAAwB,EAAE,KAA0B;QACrE,IAAI,KAAK,IAAI,IAAI,EAAE;YACf,MAAM,CAAC,qBAAqB,EAAE,CAAC;YAC/B,OAAO;SACV;QACD,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAEhD,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,KAAqC;QACvD,MAAM,MAAM,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;QACpD,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACvC,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,MAAwB,EAAE,KAAqC;QACrF,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,MAAmB;QAClC,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,MAAwB;QAC3C,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,mBAAmB,EAAE,CAAC;QACjD,IAAI,CAAC,EAAE,EAAE;YACL,OAAO,IAAI,CAAC;SACf;QAED,MAAM,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;QACjC,IAAI,KAAK,IAAI,CAAC,EAAE;YACZ,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;SAEjD;aACI,IAAI,KAAK,GAAG,CAAC,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,iGAAiG,CAAC,CAAC;SACtH;aACI;YACD,IAAI,KAAK,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC7B,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;SAE/E;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,MAAmB;QACvC,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,CAAC,oBAAoB,CAAC,MAAwB;QAChD,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5E,CAAC;CACJ"} \ No newline at end of file diff --git a/sandbox/SandboxWebApp/wwwroot/js/memorypack/SampleUnion1.ts b/sandbox/SandboxWebApp/wwwroot/js/memorypack/SampleUnion1.ts index 24b2e2f7..d1328148 100644 --- a/sandbox/SandboxWebApp/wwwroot/js/memorypack/SampleUnion1.ts +++ b/sandbox/SandboxWebApp/wwwroot/js/memorypack/SampleUnion1.ts @@ -21,7 +21,6 @@ export class SampleUnion1 implements IMogeUnion { writer.writeNullObjectHeader(); return; } - writer.writeObjectHeader(1); writer.writeNullableInt32(value.myProperty); diff --git a/sandbox/SandboxWebApp/wwwroot/js/memorypack/SampleUnion2.js.map b/sandbox/SandboxWebApp/wwwroot/js/memorypack/SampleUnion2.js.map index 3701324c..b9101f06 100644 --- a/sandbox/SandboxWebApp/wwwroot/js/memorypack/SampleUnion2.js.map +++ b/sandbox/SandboxWebApp/wwwroot/js/memorypack/SampleUnion2.js.map @@ -1 +1 @@ -{"version":3,"file":"SampleUnion2.js","sourceRoot":"","sources":["SampleUnion2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD,MAAM,OAAO,YAAY;IACrB,UAAU,CAAgB;IAE1B;QACI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IAE3B,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAA0B;QACvC,MAAM,MAAM,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;QACpD,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAClC,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,MAAwB,EAAE,KAA0B;QACrE,IAAI,KAAK,IAAI,IAAI,EAAE;YACf,MAAM,CAAC,qBAAqB,EAAE,CAAC;YAC/B,OAAO;SACV;QAED,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAEzC,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,KAAqC;QACvD,MAAM,MAAM,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;QACpD,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACvC,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,MAAwB,EAAE,KAAqC;QACrF,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,MAAmB;QAClC,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,MAAwB;QAC3C,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,mBAAmB,EAAE,CAAC;QACjD,IAAI,CAAC,EAAE,EAAE;YACL,OAAO,IAAI,CAAC;SACf;QAED,MAAM,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;QACjC,IAAI,KAAK,IAAI,CAAC,EAAE;YACZ,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;SAE1C;aACI,IAAI,KAAK,GAAG,CAAC,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,iGAAiG,CAAC,CAAC;SACtH;aACI;YACD,IAAI,KAAK,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC7B,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;SAExE;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,MAAmB;QACvC,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,CAAC,oBAAoB,CAAC,MAAwB;QAChD,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5E,CAAC;CACJ"} \ No newline at end of file +{"version":3,"file":"SampleUnion2.js","sourceRoot":"","sources":["SampleUnion2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD,MAAM,OAAO,YAAY;IACrB,UAAU,CAAgB;IAE1B;QACI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IAE3B,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAA0B;QACvC,MAAM,MAAM,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;QACpD,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAClC,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,MAAwB,EAAE,KAA0B;QACrE,IAAI,KAAK,IAAI,IAAI,EAAE;YACf,MAAM,CAAC,qBAAqB,EAAE,CAAC;YAC/B,OAAO;SACV;QACD,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAEzC,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,KAAqC;QACvD,MAAM,MAAM,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;QACpD,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACvC,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,MAAwB,EAAE,KAAqC;QACrF,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,MAAmB;QAClC,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,MAAwB;QAC3C,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,mBAAmB,EAAE,CAAC;QACjD,IAAI,CAAC,EAAE,EAAE;YACL,OAAO,IAAI,CAAC;SACf;QAED,MAAM,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;QACjC,IAAI,KAAK,IAAI,CAAC,EAAE;YACZ,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;SAE1C;aACI,IAAI,KAAK,GAAG,CAAC,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,iGAAiG,CAAC,CAAC;SACtH;aACI;YACD,IAAI,KAAK,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC7B,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;SAExE;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,MAAmB;QACvC,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,CAAC,oBAAoB,CAAC,MAAwB;QAChD,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5E,CAAC;CACJ"} \ No newline at end of file diff --git a/sandbox/SandboxWebApp/wwwroot/js/memorypack/SampleUnion2.ts b/sandbox/SandboxWebApp/wwwroot/js/memorypack/SampleUnion2.ts index 1cea682d..9e15708c 100644 --- a/sandbox/SandboxWebApp/wwwroot/js/memorypack/SampleUnion2.ts +++ b/sandbox/SandboxWebApp/wwwroot/js/memorypack/SampleUnion2.ts @@ -21,7 +21,6 @@ export class SampleUnion2 implements IMogeUnion { writer.writeNullObjectHeader(); return; } - writer.writeObjectHeader(1); writer.writeString(value.myProperty); diff --git a/sandbox/SandboxWebApp/wwwroot/js/memorypack/Subset.js.map b/sandbox/SandboxWebApp/wwwroot/js/memorypack/Subset.js.map index 1b9e91bc..4953a787 100644 --- a/sandbox/SandboxWebApp/wwwroot/js/memorypack/Subset.js.map +++ b/sandbox/SandboxWebApp/wwwroot/js/memorypack/Subset.js.map @@ -1 +1 @@ -{"version":3,"file":"Subset.js","sourceRoot":"","sources":["Subset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,OAAO,MAAM;IACf,MAAM,CAAU;IAChB,MAAM,CAAS;IACf,OAAO,CAAS;IAChB,OAAO,CAAS;IAEhB;QACI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IAErB,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAoB;QACjC,MAAM,MAAM,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;QACpD,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAClC,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,MAAwB,EAAE,KAAoB;QAC/D,IAAI,KAAK,IAAI,IAAI,EAAE;YACf,MAAM,CAAC,qBAAqB,EAAE,CAAC;YAC/B,OAAO;SACV;QAED,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAChC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAChC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAErC,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,KAA+B;QACjD,MAAM,MAAM,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;QACpD,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACvC,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,MAAwB,EAAE,KAA+B;QAC/E,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,MAAmB;QAClC,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,MAAwB;QAC3C,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,mBAAmB,EAAE,CAAC;QACjD,IAAI,CAAC,EAAE,EAAE;YACL,OAAO,IAAI,CAAC;SACf;QAED,MAAM,KAAK,GAAG,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,IAAI,CAAC,EAAE;YACZ,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;YACpC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;YAClC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YAClC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;SAEtC;aACI,IAAI,KAAK,GAAG,CAAC,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,iGAAiG,CAAC,CAAC;SACtH;aACI;YACD,IAAI,KAAK,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC7B,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;YAClE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;YAChE,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;YAChE,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;YAAC,IAAI,KAAK,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC;SAEpE;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,MAAmB;QACvC,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,CAAC,oBAAoB,CAAC,MAAwB;QAChD,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IACtE,CAAC;CACJ"} \ No newline at end of file +{"version":3,"file":"Subset.js","sourceRoot":"","sources":["Subset.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/sandbox/SandboxWebApp/wwwroot/js/memorypack/Subset.ts b/sandbox/SandboxWebApp/wwwroot/js/memorypack/Subset.ts index 5ebbe716..e363e42c 100644 --- a/sandbox/SandboxWebApp/wwwroot/js/memorypack/Subset.ts +++ b/sandbox/SandboxWebApp/wwwroot/js/memorypack/Subset.ts @@ -26,7 +26,6 @@ export class Subset { writer.writeNullObjectHeader(); return; } - writer.writeObjectHeader(4); writer.writeBoolean(value.myBool); writer.writeUint8(value.myByte); diff --git a/sandbox/SandboxWebApp/wwwroot/js/memorypack/Vector3.js b/sandbox/SandboxWebApp/wwwroot/js/memorypack/Vector3.js new file mode 100644 index 00000000..1a82331e --- /dev/null +++ b/sandbox/SandboxWebApp/wwwroot/js/memorypack/Vector3.js @@ -0,0 +1,47 @@ +import { MemoryPackWriter } from "./MemoryPackWriter.js"; +import { MemoryPackReader } from "./MemoryPackReader.js"; +export class Vector3 { + x; + y; + z; + constructor() { + this.x = 0; + this.y = 0; + this.z = 0; + } + static serialize(value) { + const writer = MemoryPackWriter.getSharedInstance(); + this.serializeCore(writer, value); + return writer.toArray(); + } + static serializeCore(writer, value) { + writer.writeFloat32(value.x); + writer.writeFloat32(value.y); + writer.writeFloat32(value.z); + } + static serializeArray(value) { + const writer = MemoryPackWriter.getSharedInstance(); + this.serializeArrayCore(writer, value); + return writer.toArray(); + } + static serializeArrayCore(writer, value) { + writer.writeArray(value, (writer, x) => Vector3.serializeCore(writer, x)); + } + static deserialize(buffer) { + return this.deserializeCore(new MemoryPackReader(buffer)); + } + static deserializeCore(reader) { + const value = new Vector3(); + value.x = reader.readFloat32(); + value.y = reader.readFloat32(); + value.z = reader.readFloat32(); + return value; + } + static deserializeArray(buffer) { + return this.deserializeArrayCore(new MemoryPackReader(buffer)); + } + static deserializeArrayCore(reader) { + return reader.readArray(reader => Vector3.deserializeCore(reader)); + } +} +//# sourceMappingURL=Vector3.js.map \ No newline at end of file diff --git a/sandbox/SandboxWebApp/wwwroot/js/memorypack/Vector3.js.map b/sandbox/SandboxWebApp/wwwroot/js/memorypack/Vector3.js.map new file mode 100644 index 00000000..9e2e98ca --- /dev/null +++ b/sandbox/SandboxWebApp/wwwroot/js/memorypack/Vector3.js.map @@ -0,0 +1 @@ +{"version":3,"file":"Vector3.js","sourceRoot":"","sources":["Vector3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,OAAO,OAAO;IAChB,CAAC,CAAS;IACV,CAAC,CAAS;IACV,CAAC,CAAS;IAEV;QACI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAEf,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAc;QAC3B,MAAM,MAAM,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;QACpD,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAClC,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,MAAwB,EAAE,KAAc;QACzD,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEjC,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,KAAuB;QACzC,MAAM,MAAM,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;QACpD,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACvC,OAAO,MAAM,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,MAAwB,EAAE,KAAuB;QACvE,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,MAAmB;QAClC,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,MAAwB;QAC3C,MAAM,KAAK,GAAG,IAAI,OAAO,EAAE,CAAC;QAC5B,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QAC/B,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QAC/B,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QAE/B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,MAAmB;QACvC,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,CAAC,oBAAoB,CAAC,MAAwB;QAChD,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IACvE,CAAC;CACJ"} \ No newline at end of file diff --git a/sandbox/SandboxWebApp/wwwroot/js/memorypack/Vector3.ts b/sandbox/SandboxWebApp/wwwroot/js/memorypack/Vector3.ts new file mode 100644 index 00000000..415b4dd4 --- /dev/null +++ b/sandbox/SandboxWebApp/wwwroot/js/memorypack/Vector3.ts @@ -0,0 +1,59 @@ +import { MemoryPackWriter } from "./MemoryPackWriter.js"; +import { MemoryPackReader } from "./MemoryPackReader.js"; + +export class Vector3 { + x: number; + y: number; + z: number; + + constructor() { + this.x = 0; + this.y = 0; + this.z = 0; + + } + + static serialize(value: Vector3): Uint8Array { + const writer = MemoryPackWriter.getSharedInstance(); + this.serializeCore(writer, value); + return writer.toArray(); + } + + static serializeCore(writer: MemoryPackWriter, value: Vector3): void { + writer.writeFloat32(value.x); + writer.writeFloat32(value.y); + writer.writeFloat32(value.z); + + } + + static serializeArray(value: Vector3[] | null): Uint8Array { + const writer = MemoryPackWriter.getSharedInstance(); + this.serializeArrayCore(writer, value); + return writer.toArray(); + } + + static serializeArrayCore(writer: MemoryPackWriter, value: Vector3[] | null): void { + writer.writeArray(value, (writer, x) => Vector3.serializeCore(writer, x)); + } + + static deserialize(buffer: ArrayBuffer): Vector3 { + return this.deserializeCore(new MemoryPackReader(buffer)); + } + + static deserializeCore(reader: MemoryPackReader): Vector3 { + const value = new Vector3(); + value.x = reader.readFloat32(); + value.y = reader.readFloat32(); + value.z = reader.readFloat32(); + + return value; + } + + static deserializeArray(buffer: ArrayBuffer): Vector3[] | null { + return this.deserializeArrayCore(new MemoryPackReader(buffer)); + } + + static deserializeArrayCore(reader: MemoryPackReader): Vector3[] | null { + return reader.readArray(reader => Vector3.deserializeCore(reader)); + } +} diff --git a/src/MemoryPack.Core/Attributes.cs b/src/MemoryPack.Core/Attributes.cs index 9ace47c3..98d42f39 100644 --- a/src/MemoryPack.Core/Attributes.cs +++ b/src/MemoryPack.Core/Attributes.cs @@ -1,4 +1,4 @@ -namespace MemoryPack; +namespace MemoryPack; [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Interface, AllowMultiple = false, Inherited = false)] public sealed class MemoryPackableAttribute : Attribute @@ -149,7 +149,7 @@ public sealed class MemoryPackOnDeserializedAttribute : Attribute // Others -[AttributeUsage(AttributeTargets.Class | AttributeTargets.Interface, AllowMultiple = false, Inherited = false)] +[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Interface, AllowMultiple = false, Inherited = false)] public sealed class GenerateTypeScriptAttribute : Attribute { } diff --git a/src/MemoryPack.Generator/DiagnosticDescriptors.cs b/src/MemoryPack.Generator/DiagnosticDescriptors.cs index 50a77087..975ac251 100644 --- a/src/MemoryPack.Generator/DiagnosticDescriptors.cs +++ b/src/MemoryPack.Generator/DiagnosticDescriptors.cs @@ -1,4 +1,4 @@ -using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis; using System; using System.Collections.Generic; using System.Text; @@ -340,4 +340,12 @@ internal static class DiagnosticDescriptors category: Category, defaultSeverity: DiagnosticSeverity.Error, isEnabledByDefault: true); + + public static readonly DiagnosticDescriptor GenerateTypeScriptDoesNotAllowNullableStruct = new( + id: "MEMPACK043", + title: "GenerateTypeScript does not allow Nullable", + messageFormat: "'{0}.{1}' is '{2}?' — structs can't be null, use '{2}' directly.", + category: Category, + defaultSeverity: DiagnosticSeverity.Error, + isEnabledByDefault: true); } diff --git a/src/MemoryPack.Generator/MemoryPackGenerator.TypeScript.cs b/src/MemoryPack.Generator/MemoryPackGenerator.TypeScript.cs index 4f48a29e..5b9439f8 100644 --- a/src/MemoryPack.Generator/MemoryPackGenerator.TypeScript.cs +++ b/src/MemoryPack.Generator/MemoryPackGenerator.TypeScript.cs @@ -1,15 +1,14 @@ -using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp.Syntax; -using System.Collections.Generic; using System.Diagnostics; -using System.Dynamic; -using System.IO.Compression; using System.Text; -using System.Xml.Serialization; namespace MemoryPack.Generator; +record struct FieldLayout(MemberMeta Member, int ByteOffset, int Size); +record struct UnmanagedStructLayout(FieldLayout[] Fields, int TotalSize); + public record TypeScriptGenerateOptions { public string OutputDirectory { get; set; } = default!; @@ -168,6 +167,20 @@ static bool Validate(TypeMeta type, TypeDeclarationSyntax syntax, in SourceProdu context.ReportDiagnostic(Diagnostic.Create(DiagnosticDescriptors.GenerateTypeScriptNotSupportedCustomFormatter, item.GetLocation(syntax), typeSymbol.Name)); return false; } + + if (item.MemberType is INamedTypeSymbol memberNts + && memberNts.EqualsUnconstructedGenericType(reference.KnownTypes.System_Nullable_T) + && memberNts.TypeArguments[0] is INamedTypeSymbol innerNts + && innerNts.TypeKind == TypeKind.Struct + && innerNts.SpecialType == SpecialType.None + && !SymbolEqualityComparer.Default.Equals(innerNts, reference.KnownTypes.System_Guid)) + { + context.ReportDiagnostic(Diagnostic.Create( + DiagnosticDescriptors.GenerateTypeScriptDoesNotAllowNullableStruct, + item.GetLocation(syntax), + typeSymbol.Name, item.Name, innerNts.Name)); + return false; + } } return true; @@ -193,6 +206,26 @@ public void EmitTypescript(StringBuilder sb, IReadOnlyDictionary new TypeScriptMember(x, reference, options)).ToArray(); var impl = (union != null) ? $"implements {union.Name} " : ""; + if (IsUnmanagedType) + { + EmitTypeScriptUnmanagedStruct(sb, tsMembers, impl); + return; + } + + var serializeParam = IsValueType ? TypeName : $"{TypeName} | null"; + var arrayElemType = IsValueType ? TypeName : $"{TypeName} | null"; + var deserializeReturnType = IsValueType ? TypeName : $"{TypeName} | null"; + var nullHeaderCheck = IsValueType ? "" : $$""" + if (value == null) { + writer.writeNullObjectHeader(); + return; + } + +"""; + var nullObjectHandler = IsValueType + ? $"throw new Error(\"Cannot deserialize null into struct {TypeName}.\");" + : "return null;"; + var code = $$""" export class {{TypeName}} {{impl}}{ {{EmitTypeScriptMembers(tsMembers)}} @@ -200,39 +233,34 @@ export class {{TypeName}} {{impl}}{ {{EmitTypeScriptMembersInit(tsMembers)}} } - static serialize(value: {{TypeName}} | null): Uint8Array { + static serialize(value: {{serializeParam}}): Uint8Array { const writer = MemoryPackWriter.getSharedInstance(); this.serializeCore(writer, value); return writer.toArray(); } - static serializeCore(writer: MemoryPackWriter, value: {{TypeName}} | null): void { - if (value == null) { - writer.writeNullObjectHeader(); - return; - } - -{{EmitTypeScriptSerializeBody(tsMembers)}} + static serializeCore(writer: MemoryPackWriter, value: {{serializeParam}}): void { +{{nullHeaderCheck}}{{EmitTypeScriptSerializeBody(tsMembers)}} } - static serializeArray(value: ({{TypeName}} | null)[] | null): Uint8Array { + static serializeArray(value: ({{arrayElemType}})[] | null): Uint8Array { const writer = MemoryPackWriter.getSharedInstance(); this.serializeArrayCore(writer, value); return writer.toArray(); } - static serializeArrayCore(writer: MemoryPackWriter, value: ({{TypeName}} | null)[] | null): void { + static serializeArrayCore(writer: MemoryPackWriter, value: ({{arrayElemType}})[] | null): void { writer.writeArray(value, (writer, x) => {{TypeName}}.serializeCore(writer, x)); } - static deserialize(buffer: ArrayBuffer): {{TypeName}} | null { + static deserialize(buffer: ArrayBuffer): {{deserializeReturnType}} { return this.deserializeCore(new MemoryPackReader(buffer)); } - static deserializeCore(reader: MemoryPackReader): {{TypeName}} | null { + static deserializeCore(reader: MemoryPackReader): {{deserializeReturnType}} { const [ok, count] = reader.tryReadObjectHeader(); if (!ok) { - return null; + {{nullObjectHandler}} } const value = new {{TypeName}}(); @@ -248,11 +276,117 @@ static deserializeCore(reader: MemoryPackReader): {{TypeName}} | null { return value; } - static deserializeArray(buffer: ArrayBuffer): ({{TypeName}} | null)[] | null { + static deserializeArray(buffer: ArrayBuffer): ({{arrayElemType}})[] | null { return this.deserializeArrayCore(new MemoryPackReader(buffer)); } - static deserializeArrayCore(reader: MemoryPackReader): ({{TypeName}} | null)[] | null { + static deserializeArrayCore(reader: MemoryPackReader): ({{arrayElemType}})[] | null { + return reader.readArray(reader => {{TypeName}}.deserializeCore(reader)); + } +} +"""; + + sb.AppendLine(code); + } + + public void EmitTypeScriptUnmanagedStruct(StringBuilder sb, TypeScriptMember[] tsMembers, string impl) + { + var layout = ComputeUnmanagedLayout(Members); + + string EmitSerializeFields() + { + int offset = 0; + var builder = new StringBuilder(); + + for (int i = 0; i < layout.Fields.Length; i++) + { + var field = layout.Fields[i]; + int padding = field.ByteOffset - offset; + if (padding > 0) + { + builder.AppendLine($" writer.writeZeros({padding});"); + } + builder.AppendLine($" {string.Format(tsMembers[i].WriteMethodTemplate, "value." + tsMembers[i].MemberName)};"); + offset = field.ByteOffset + field.Size; + } + + int trailingPadding = layout.TotalSize - offset; + if (trailingPadding > 0) + { + builder.AppendLine($" writer.writeZeros({trailingPadding});"); + } + + return builder.ToString(); + } + + string EmitDeserializeFields() + { + int offset = 0; + var builder = new StringBuilder(); + + for (int i = 0; i < layout.Fields.Length; i++) + { + var field = layout.Fields[i]; + int padding = field.ByteOffset - offset; + if (padding > 0) + { + builder.AppendLine($" reader.skipBytes({padding});"); + } + builder.AppendLine($" value.{tsMembers[i].MemberName} = {tsMembers[i].ReadMethodTemplate};"); + offset = field.ByteOffset + field.Size; + } + + int trailingPadding = layout.TotalSize - offset; + if (trailingPadding > 0) + { + builder.AppendLine($" reader.skipBytes({trailingPadding});"); + } + + return builder.ToString(); + } + + var code = $$""" +export class {{TypeName}} {{impl}}{ +{{EmitTypeScriptMembers(tsMembers)}} + constructor() { +{{EmitTypeScriptMembersInit(tsMembers)}} + } + + static serialize(value: {{TypeName}}): Uint8Array { + const writer = MemoryPackWriter.getSharedInstance(); + this.serializeCore(writer, value); + return writer.toArray(); + } + + static serializeCore(writer: MemoryPackWriter, value: {{TypeName}}): void { +{{EmitSerializeFields()}} + } + + static serializeArray(value: {{TypeName}}[] | null): Uint8Array { + const writer = MemoryPackWriter.getSharedInstance(); + this.serializeArrayCore(writer, value); + return writer.toArray(); + } + + static serializeArrayCore(writer: MemoryPackWriter, value: {{TypeName}}[] | null): void { + writer.writeArray(value, (writer, x) => {{TypeName}}.serializeCore(writer, x)); + } + + static deserialize(buffer: ArrayBuffer): {{TypeName}} { + return this.deserializeCore(new MemoryPackReader(buffer)); + } + + static deserializeCore(reader: MemoryPackReader): {{TypeName}} { + const value = new {{TypeName}}(); +{{EmitDeserializeFields()}} + return value; + } + + static deserializeArray(buffer: ArrayBuffer): {{TypeName}}[] | null { + return this.deserializeArrayCore(new MemoryPackReader(buffer)); + } + + static deserializeArrayCore(reader: MemoryPackReader): {{TypeName}}[] | null { return reader.readArray(reader => {{TypeName}}.deserializeCore(reader)); } } @@ -261,6 +395,77 @@ static deserializeArrayCore(reader: MemoryPackReader): ({{TypeName}} | null)[] | sb.AppendLine(code); } + static UnmanagedStructLayout ComputeUnmanagedLayout(MemberMeta[] members) + { + var fields = new FieldLayout[members.Length]; + int offset = 0; + int maxAlign = 1; + + for (int i = 0; i < members.Length; i++) + { + var (size, align) = GetUnmanagedTypeSizeAndAlign(members[i].MemberType); + int padding = (align - (offset % align)) % align; + offset += padding; + fields[i] = new FieldLayout(members[i], offset, size); + offset += size; + if (align > maxAlign) maxAlign = align; + } + + int trailingPad = (maxAlign - (offset % maxAlign)) % maxAlign; + return new UnmanagedStructLayout(fields, offset + trailingPad); + } + + static (int Size, int Align) GetUnmanagedTypeSizeAndAlign(ITypeSymbol type) + { + if (type is not INamedTypeSymbol nts) return (1, 1); + + if (nts.TypeKind == TypeKind.Enum) + return GetUnmanagedTypeSizeAndAlign(nts.EnumUnderlyingType!); + + switch (nts.SpecialType) + { + case SpecialType.System_Boolean: + case SpecialType.System_SByte: + case SpecialType.System_Byte: + return (1, 1); + case SpecialType.System_Int16: + case SpecialType.System_UInt16: + case SpecialType.System_Char: + return (2, 2); + case SpecialType.System_Int32: + case SpecialType.System_UInt32: + case SpecialType.System_Single: + return (4, 4); + case SpecialType.System_Int64: + case SpecialType.System_UInt64: + case SpecialType.System_Double: + case SpecialType.System_DateTime: + return (8, 8); + } + + if (nts.IsUnmanagedType && nts.TypeKind == TypeKind.Struct) + { + var instanceFields = nts.GetMembers() + .OfType() + .Where(f => !f.IsStatic) + .ToArray(); + + int off = 0; + int maxA = 1; + foreach (var field in instanceFields) + { + var (fSize, fAlign) = GetUnmanagedTypeSizeAndAlign(field.Type); + int pad = (fAlign - (off % fAlign)) % fAlign; + off += pad + fSize; + if (fAlign > maxA) maxA = fAlign; + } + int trailingPad = (maxA - (off % maxA)) % maxA; + return (off + trailingPad, maxA); + } + + return (1, 1); + } + public void EmitTypeScriptUnion(StringBuilder sb, string importExt) { string EmitUnionSerialize() diff --git a/src/MemoryPack.Generator/MemoryPackGenerator.cs b/src/MemoryPack.Generator/MemoryPackGenerator.cs index 760a4c0a..91684da4 100644 --- a/src/MemoryPack.Generator/MemoryPackGenerator.cs +++ b/src/MemoryPack.Generator/MemoryPackGenerator.cs @@ -1,4 +1,4 @@ -using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp.Syntax; using System.Text; @@ -181,6 +181,7 @@ void RegisterTypeScript(IncrementalGeneratorInitializationContext context) predicate: static (node, token) => { return (node is ClassDeclarationSyntax + or StructDeclarationSyntax or RecordDeclarationSyntax or InterfaceDeclarationSyntax); }, diff --git a/src/MemoryPack.Generator/TypeScriptMember.cs b/src/MemoryPack.Generator/TypeScriptMember.cs index 8399b568..9e1cf2c1 100644 --- a/src/MemoryPack.Generator/TypeScriptMember.cs +++ b/src/MemoryPack.Generator/TypeScriptMember.cs @@ -1,4 +1,4 @@ -using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis; namespace MemoryPack.Generator; @@ -170,10 +170,11 @@ TypeScriptType ConvertToTypeScriptType(ITypeSymbol symbol, ReferenceSymbols refe if (symbol.TryGetMemoryPackableType(references, out _, out _) || symbol.IsWillImplementMemoryPackUnion(references)) { + bool isValueType = symbol.IsValueType; return new TypeScriptType { - TypeName = $"{symbol.Name} | null", - DefaultValue = "null", + TypeName = isValueType ? symbol.Name : $"{symbol.Name} | null", + DefaultValue = isValueType ? $"new {symbol.Name}()" : "null", WriteMethodTemplate = $"{symbol.Name}.serializeCore(writer, {{0}})", ReadMethodTemplate = $"{symbol.Name}.deserializeCore(reader)" }; diff --git a/src/MemoryPack.Generator/TypeScriptRuntime.cs b/src/MemoryPack.Generator/TypeScriptRuntime.cs index 650946eb..790c0196 100644 --- a/src/MemoryPack.Generator/TypeScriptRuntime.cs +++ b/src/MemoryPack.Generator/TypeScriptRuntime.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Text; @@ -124,6 +124,14 @@ public writeUint8(value: number): void { this.offset += 1; } + public writeZeros(count: number): void { + this.ensureCapacity(count); + for (let i = 0; i < count; i++) { + this.dataView.setUint8(this.offset + i, 0); + } + this.offset += count; + } + public writeNullableUint8(value: number | null): void { if (value == null) { this.clearBuffer(2); @@ -493,6 +501,10 @@ public tryReadObjectHeader(): [boolean, number] { : [true, memberCount]; } + public skipBytes(count: number): void { + this.offset += count; + } + public tryReadUnionHeader(): [boolean, number] { const tag = this.readUint8(); if (tag < 250) { diff --git a/tests/MemoryPack.Tests/SourceGeneratorTests/GeneratorDiagnosticsTest.TypeScript.cs b/tests/MemoryPack.Tests/SourceGeneratorTests/GeneratorDiagnosticsTest.TypeScript.cs index 75226673..6e1c65f0 100644 --- a/tests/MemoryPack.Tests/SourceGeneratorTests/GeneratorDiagnosticsTest.TypeScript.cs +++ b/tests/MemoryPack.Tests/SourceGeneratorTests/GeneratorDiagnosticsTest.TypeScript.cs @@ -1,4 +1,4 @@ -#if NET7_0_OR_GREATER +#if NET7_0_OR_GREATER using MemoryPack.Generator; using Microsoft.CodeAnalysis; @@ -188,6 +188,118 @@ public partial class Hoge """, true); } + [Fact] + public void GenerateTypeScriptManagedStruct() + { + var generatedCode = CompileAndRead(""" + using MemoryPack; + + [MemoryPackable] + [GenerateTypeScript] + public partial struct ManagedStruct + { + public string Name { get; set; } + public int Value { get; set; } + } + """, + "ManagedStruct.ts"); + + + generatedCode.Should().Contain("static serialize(value: ManagedStruct): Uint8Array"); + generatedCode.Should().Contain("static serializeCore(writer: MemoryPackWriter, value: ManagedStruct): void"); + generatedCode.Should().Contain("static deserialize(buffer: ArrayBuffer): ManagedStruct {"); + generatedCode.Should().Contain("static deserializeCore(reader: MemoryPackReader): ManagedStruct {"); + + generatedCode.Should().NotContain("writeNullObjectHeader"); + generatedCode.Should().Contain("writer.writeObjectHeader(2)"); + + generatedCode.Should().Contain("throw new Error(\"Cannot deserialize null into struct ManagedStruct.\")"); + generatedCode.Should().NotContain("return null"); + } + + [Fact] + public void GenerateTypeScriptUnmanagedStruct() + { + var generatedCode = CompileAndRead(""" + using MemoryPack; + + [MemoryPackable] + [GenerateTypeScript] + public partial struct Point + { + public int X { get; set; } + public int Y { get; set; } + } + """, + "Point.ts"); + + generatedCode.Should().Contain("static serialize(value: Point): Uint8Array"); + generatedCode.Should().Contain("static serializeCore(writer: MemoryPackWriter, value: Point): void"); + generatedCode.Should().Contain("static deserializeCore(reader: MemoryPackReader): Point {"); + + generatedCode.Should().Contain("writer.writeInt32(value.x)"); + generatedCode.Should().Contain("writer.writeInt32(value.y)"); + generatedCode.Should().NotContain("writeObjectHeader"); + generatedCode.Should().NotContain("writeNullObjectHeader"); + + generatedCode.Should().Contain("value.x = reader.readInt32()"); + generatedCode.Should().Contain("value.y = reader.readInt32()"); + generatedCode.Should().NotContain("tryReadObjectHeader"); + } + + [Fact] + public void GenerateTypeScriptUnmanagedStructWithPadding() + { + var generatedCode = CompileAndRead(""" + using MemoryPack; + + [MemoryPackable] + [GenerateTypeScript] + public partial struct Padded + { + public byte A { get; set; } + public int B { get; set; } + } + """, + "Padded.ts"); + + generatedCode.Should().Contain("writer.writeUint8(value.a)"); + generatedCode.Should().Contain("writer.writeZeros(3)"); + generatedCode.Should().Contain("writer.writeInt32(value.b)"); + generatedCode.Should().Contain("value.a = reader.readUint8()"); + generatedCode.Should().Contain("reader.skipBytes(3)"); + generatedCode.Should().Contain("value.b = reader.readInt32()"); + } + + [Fact] + public void GenerateTypeScriptStructMemberIsNonNullable() + { + var generatedCode = CompileAndRead(""" + using MemoryPack; + + [MemoryPackable] + [GenerateTypeScript] + public partial struct Point + { + public int X { get; set; } + public int Y { get; set; } + } + + [MemoryPackable] + [GenerateTypeScript] + public partial class Container + { + public Point Position { get; set; } + public string Name { get; set; } + } + """, + "Container.ts"); + + generatedCode.Should().Contain("position: Point;"); + generatedCode.Should().Contain("this.position = new Point();"); + generatedCode.Should().NotContain("position: Point | null"); + } + [Fact] public void GenerateTypeScriptNullableReferenceTypes() { @@ -275,6 +387,29 @@ public override bool TryGetValue(string key, [NotNullWhen(true)] out string? val } } } + + [Fact] + public void MEMPACK043_GenerateTypeScriptDoesNotAllowNullableStruct() + { + Compile2(43, """ +using MemoryPack; + +[MemoryPackable] +[GenerateTypeScript] +public partial struct Point +{ + public int X { get; set; } + public int Y { get; set; } +} + +[MemoryPackable] +[GenerateTypeScript] +public partial class Hoge +{ + public Point? Position { get; set; } +} +"""); + } } [MemoryPackable]