From 83f9a4df147ef58c884f43092527f5cb6fa2f0a9 Mon Sep 17 00:00:00 2001 From: "Emma [it/its]@Rory&" Date: Thu, 7 Dec 2023 07:26:02 +0100 Subject: Temp state --- .../EventSerializerContexts.g.cs | 99 ++++++++++++++++++++++ ...LibMatrix.JsonSerializerContextGenerator.csproj | 15 ++++ .../Program.cs | 22 +++++ 3 files changed, 136 insertions(+) create mode 100644 Utilities/LibMatrix.JsonSerializerContextGenerator/EventSerializerContexts.g.cs create mode 100644 Utilities/LibMatrix.JsonSerializerContextGenerator/LibMatrix.JsonSerializerContextGenerator.csproj create mode 100644 Utilities/LibMatrix.JsonSerializerContextGenerator/Program.cs (limited to 'Utilities/LibMatrix.JsonSerializerContextGenerator') diff --git a/Utilities/LibMatrix.JsonSerializerContextGenerator/EventSerializerContexts.g.cs b/Utilities/LibMatrix.JsonSerializerContextGenerator/EventSerializerContexts.g.cs new file mode 100644 index 0000000..1ca32dd --- /dev/null +++ b/Utilities/LibMatrix.JsonSerializerContextGenerator/EventSerializerContexts.g.cs @@ -0,0 +1,99 @@ +[System.Text.Json.Serialization.JsonSourceGenerationOptions(WriteIndented = true)] +[System.Text.Json.Serialization.JsonSerializable(typeof(LibMatrix.EventTypes.UnknownEventContent))] +internal partial class UnknownEventContentSerializerContext : System.Text.Json.Serialization.JsonSerializerContext { } + +[System.Text.Json.Serialization.JsonSourceGenerationOptions(WriteIndented = true)] +[System.Text.Json.Serialization.JsonSerializable(typeof(LibMatrix.EventTypes.Spec.RoomMessageEventContent))] +internal partial class RoomMessageEventContentSerializerContext : System.Text.Json.Serialization.JsonSerializerContext { } + +[System.Text.Json.Serialization.JsonSourceGenerationOptions(WriteIndented = true)] +[System.Text.Json.Serialization.JsonSerializable(typeof(LibMatrix.EventTypes.Spec.State.PresenceEventContent))] +internal partial class PresenceEventContentSerializerContext : System.Text.Json.Serialization.JsonSerializerContext { } + +[System.Text.Json.Serialization.JsonSourceGenerationOptions(WriteIndented = true)] +[System.Text.Json.Serialization.JsonSerializable(typeof(LibMatrix.EventTypes.Spec.State.RoomTypingEventContent))] +internal partial class RoomTypingEventContentSerializerContext : System.Text.Json.Serialization.JsonSerializerContext { } + +[System.Text.Json.Serialization.JsonSourceGenerationOptions(WriteIndented = true)] +[System.Text.Json.Serialization.JsonSerializable(typeof(LibMatrix.EventTypes.Spec.State.ServerPolicyRuleEventContent))] +internal partial class ServerPolicyRuleEventContentSerializerContext : System.Text.Json.Serialization.JsonSerializerContext { } + +[System.Text.Json.Serialization.JsonSourceGenerationOptions(WriteIndented = true)] +[System.Text.Json.Serialization.JsonSerializable(typeof(LibMatrix.EventTypes.Spec.State.UserPolicyRuleEventContent))] +internal partial class UserPolicyRuleEventContentSerializerContext : System.Text.Json.Serialization.JsonSerializerContext { } + +[System.Text.Json.Serialization.JsonSourceGenerationOptions(WriteIndented = true)] +[System.Text.Json.Serialization.JsonSerializable(typeof(LibMatrix.EventTypes.Spec.State.RoomPolicyRuleEventContent))] +internal partial class RoomPolicyRuleEventContentSerializerContext : System.Text.Json.Serialization.JsonSerializerContext { } + +[System.Text.Json.Serialization.JsonSourceGenerationOptions(WriteIndented = true)] +[System.Text.Json.Serialization.JsonSerializable(typeof(LibMatrix.EventTypes.Spec.State.RoomAliasEventContent))] +internal partial class RoomAliasEventContentSerializerContext : System.Text.Json.Serialization.JsonSerializerContext { } + +[System.Text.Json.Serialization.JsonSourceGenerationOptions(WriteIndented = true)] +[System.Text.Json.Serialization.JsonSerializable(typeof(LibMatrix.EventTypes.Spec.State.RoomAvatarEventContent))] +internal partial class RoomAvatarEventContentSerializerContext : System.Text.Json.Serialization.JsonSerializerContext { } + +[System.Text.Json.Serialization.JsonSourceGenerationOptions(WriteIndented = true)] +[System.Text.Json.Serialization.JsonSerializable(typeof(LibMatrix.EventTypes.Spec.State.RoomCanonicalAliasEventContent))] +internal partial class RoomCanonicalAliasEventContentSerializerContext : System.Text.Json.Serialization.JsonSerializerContext { } + +[System.Text.Json.Serialization.JsonSourceGenerationOptions(WriteIndented = true)] +[System.Text.Json.Serialization.JsonSerializable(typeof(LibMatrix.EventTypes.Spec.State.RoomCreateEventContent))] +internal partial class RoomCreateEventContentSerializerContext : System.Text.Json.Serialization.JsonSerializerContext { } + +[System.Text.Json.Serialization.JsonSourceGenerationOptions(WriteIndented = true)] +[System.Text.Json.Serialization.JsonSerializable(typeof(LibMatrix.EventTypes.Spec.State.RoomEncryptionEventContent))] +internal partial class RoomEncryptionEventContentSerializerContext : System.Text.Json.Serialization.JsonSerializerContext { } + +[System.Text.Json.Serialization.JsonSourceGenerationOptions(WriteIndented = true)] +[System.Text.Json.Serialization.JsonSerializable(typeof(LibMatrix.EventTypes.Spec.State.RoomGuestAccessEventContent))] +internal partial class RoomGuestAccessEventContentSerializerContext : System.Text.Json.Serialization.JsonSerializerContext { } + +[System.Text.Json.Serialization.JsonSourceGenerationOptions(WriteIndented = true)] +[System.Text.Json.Serialization.JsonSerializable(typeof(LibMatrix.EventTypes.Spec.State.RoomHistoryVisibilityEventContent))] +internal partial class RoomHistoryVisibilityEventContentSerializerContext : System.Text.Json.Serialization.JsonSerializerContext { } + +[System.Text.Json.Serialization.JsonSourceGenerationOptions(WriteIndented = true)] +[System.Text.Json.Serialization.JsonSerializable(typeof(LibMatrix.EventTypes.Spec.State.RoomJoinRulesEventContent))] +internal partial class RoomJoinRulesEventContentSerializerContext : System.Text.Json.Serialization.JsonSerializerContext { } + +[System.Text.Json.Serialization.JsonSourceGenerationOptions(WriteIndented = true)] +[System.Text.Json.Serialization.JsonSerializable(typeof(LibMatrix.EventTypes.Spec.State.RoomMemberEventContent))] +internal partial class RoomMemberEventContentSerializerContext : System.Text.Json.Serialization.JsonSerializerContext { } + +[System.Text.Json.Serialization.JsonSourceGenerationOptions(WriteIndented = true)] +[System.Text.Json.Serialization.JsonSerializable(typeof(LibMatrix.EventTypes.Spec.State.RoomNameEventContent))] +internal partial class RoomNameEventContentSerializerContext : System.Text.Json.Serialization.JsonSerializerContext { } + +[System.Text.Json.Serialization.JsonSourceGenerationOptions(WriteIndented = true)] +[System.Text.Json.Serialization.JsonSerializable(typeof(LibMatrix.EventTypes.Spec.State.RoomPinnedEventContent))] +internal partial class RoomPinnedEventContentSerializerContext : System.Text.Json.Serialization.JsonSerializerContext { } + +[System.Text.Json.Serialization.JsonSourceGenerationOptions(WriteIndented = true)] +[System.Text.Json.Serialization.JsonSerializable(typeof(LibMatrix.EventTypes.Spec.State.RoomPowerLevelEventContent))] +internal partial class RoomPowerLevelEventContentSerializerContext : System.Text.Json.Serialization.JsonSerializerContext { } + +[System.Text.Json.Serialization.JsonSourceGenerationOptions(WriteIndented = true)] +[System.Text.Json.Serialization.JsonSerializable(typeof(LibMatrix.EventTypes.Spec.State.RoomServerACLEventContent))] +internal partial class RoomServerACLEventContentSerializerContext : System.Text.Json.Serialization.JsonSerializerContext { } + +[System.Text.Json.Serialization.JsonSourceGenerationOptions(WriteIndented = true)] +[System.Text.Json.Serialization.JsonSerializable(typeof(LibMatrix.EventTypes.Spec.State.RoomTopicEventContent))] +internal partial class RoomTopicEventContentSerializerContext : System.Text.Json.Serialization.JsonSerializerContext { } + +[System.Text.Json.Serialization.JsonSourceGenerationOptions(WriteIndented = true)] +[System.Text.Json.Serialization.JsonSerializable(typeof(LibMatrix.EventTypes.Spec.State.SpaceChildEventContent))] +internal partial class SpaceChildEventContentSerializerContext : System.Text.Json.Serialization.JsonSerializerContext { } + +[System.Text.Json.Serialization.JsonSourceGenerationOptions(WriteIndented = true)] +[System.Text.Json.Serialization.JsonSerializable(typeof(LibMatrix.EventTypes.Spec.State.SpaceParentEventContent))] +internal partial class SpaceParentEventContentSerializerContext : System.Text.Json.Serialization.JsonSerializerContext { } + +[System.Text.Json.Serialization.JsonSourceGenerationOptions(WriteIndented = true)] +[System.Text.Json.Serialization.JsonSerializable(typeof(LibMatrix.EventTypes.Common.MjolnirShortcodeEventContent))] +internal partial class MjolnirShortcodeEventContentSerializerContext : System.Text.Json.Serialization.JsonSerializerContext { } + +[System.Text.Json.Serialization.JsonSourceGenerationOptions(WriteIndented = true)] +[System.Text.Json.Serialization.JsonSerializable(typeof(LibMatrix.EventTypes.Common.RoomEmotesEventContent))] +internal partial class RoomEmotesEventContentSerializerContext : System.Text.Json.Serialization.JsonSerializerContext { } diff --git a/Utilities/LibMatrix.JsonSerializerContextGenerator/LibMatrix.JsonSerializerContextGenerator.csproj b/Utilities/LibMatrix.JsonSerializerContextGenerator/LibMatrix.JsonSerializerContextGenerator.csproj new file mode 100644 index 0000000..b90bf20 --- /dev/null +++ b/Utilities/LibMatrix.JsonSerializerContextGenerator/LibMatrix.JsonSerializerContextGenerator.csproj @@ -0,0 +1,15 @@ + + + + net8.0 + enable + enable + exe + + + + + + + + diff --git a/Utilities/LibMatrix.JsonSerializerContextGenerator/Program.cs b/Utilities/LibMatrix.JsonSerializerContextGenerator/Program.cs new file mode 100644 index 0000000..76d6357 --- /dev/null +++ b/Utilities/LibMatrix.JsonSerializerContextGenerator/Program.cs @@ -0,0 +1,22 @@ +using System.Reflection; +using ArcaneLibs; +using ArcaneLibs.Extensions.Streams; +using LibMatrix; +using LibMatrix.Interfaces; + +// string binary = args.Length > 1 ? args[0] : Console.ReadLine()!; + +// var asm = Assembly.LoadFrom(binary); +File.Delete("EventSerializerContexts.g.cs"); +var stream = File.OpenWrite("EventSerializerContexts.g.cs"); +var eventContentTypes = new ClassCollector().ResolveFromAllAccessibleAssemblies(); +stream.WriteString(string.Join('\n', eventContentTypes//.DistinctBy(x => x.Namespace) + .Select(x => $$""" + [System.Text.Json.Serialization.JsonSourceGenerationOptions(WriteIndented = true)] + [System.Text.Json.Serialization.JsonSerializable(typeof({{x.FullName}}))] + internal partial class {{x.Name}}SerializerContext : System.Text.Json.Serialization.JsonSerializerContext { } + + """))); + +await stream.FlushAsync(); +stream.Close(); \ No newline at end of file -- cgit 1.4.1