about summary refs log tree commit diff
path: root/LibMatrix.EventTypes.Abstractions/BaseMatrixEventContent.cs
diff options
context:
space:
mode:
authorEmma [it/its]@Rory& <root@rory.gay>2024-06-01 19:02:28 +0200
committerEmma [it/its]@Rory& <root@rory.gay>2024-06-01 19:03:05 +0200
commita129b321998614b20e4ebb8a7c1632553ebee981 (patch)
treef4e16f7b1bbeffc21e81f8749e4980994242ff19 /LibMatrix.EventTypes.Abstractions/BaseMatrixEventContent.cs
parentEvent serialisation fix (diff)
downloadLibMatrix-a129b321998614b20e4ebb8a7c1632553ebee981.tar.xz
Split event abstractions
Diffstat (limited to '')
-rw-r--r--LibMatrix.EventTypes.Abstractions/BaseMatrixEventContent.cs (renamed from LibMatrix.EventTypes/MatrixEventContent.cs)24
1 files changed, 9 insertions, 15 deletions
diff --git a/LibMatrix.EventTypes/MatrixEventContent.cs b/LibMatrix.EventTypes.Abstractions/BaseMatrixEventContent.cs
index 81b8c52..eba50a5 100644
--- a/LibMatrix.EventTypes/MatrixEventContent.cs
+++ b/LibMatrix.EventTypes.Abstractions/BaseMatrixEventContent.cs
@@ -12,21 +12,18 @@ namespace LibMatrix.EventTypes;
 ///     <seealso cref="System.Text.Json.Nodes.JsonNode"/>
 ///     <seealso cref="System.Text.Json.Nodes.JsonObject"/>
 /// </summary>
-[JsonConverter(typeof(MatrixEventContentConverter<MatrixEventContent>))]
-public class MatrixEventContent {
-
-    [JsonExtensionData, JsonInclude]
+[JsonConverter(typeof(MatrixEventContentConverter<BaseMatrixEventContent>))]
+// [JsonSerializable(typeof(MatrixEventContent))]
+public class BaseMatrixEventContent {
     public JsonObject InternalJson { get; set; } = new();
 
-    
-
-    public MatrixEventContent() { }
+    public BaseMatrixEventContent() { }
 
-    public MatrixEventContent(JsonNode json) {
+    public BaseMatrixEventContent(JsonNode json) {
         InternalJson = json.AsObject();
     }
 
-    public static implicit operator MatrixEventContent(JsonNode json) => new(json);
+    public static implicit operator BaseMatrixEventContent(JsonNode json) => new(json);
 
     // public static implicit operator JsonNode(MatrixEventContent content) => content.InternalJson;
 
@@ -41,20 +38,17 @@ public class MatrixEventContent {
     public string ToJson() => InternalJson.ToJson();
 
 
-    public class MatrixEventContentConverter<T> : JsonConverter<T> where T : MatrixEventContent, new() {
+    public class MatrixEventContentConverter<T> : JsonConverter<T> where T : BaseMatrixEventContent, new() {
         public override T? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) {
             // read entire object into a JsonObject
+            // Console.WriteLine($"MatrixEventContentConverter<T>: Reading {typeToConvert}");
             var json = JsonNode.Parse(ref reader);
             return new T { InternalJson = json.AsObject() };
         }
 
         public override void Write(Utf8JsonWriter writer, T value, JsonSerializerOptions options) {
+            // Console.WriteLine($"MatrixEventContentConverter<T>: Writing {value.GetType()}");
             value.InternalJson.WriteTo(writer);
         }
     }
-}
-
-public class MatrixEventAttribute(string eventType, bool deprecated = false) : Attribute {
-    public string EventType { get; } = eventType;
-    public bool Deprecated { get; } = deprecated;
 }
\ No newline at end of file