Skip to content

Commit 703308e

Browse files
committed
json source generation
1 parent 69a8ef0 commit 703308e

File tree

6 files changed

+16
-23
lines changed

6 files changed

+16
-23
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
[JsonSourceGenerationOptions(WriteIndented = true)]
2+
[JsonSerializable(typeof(MovePayload))]
3+
[JsonSerializable(typeof(DeletePayload))]
4+
[JsonSerializable(typeof(Settings))]
5+
partial class AppJsonContext : JsonSerializerContext;
Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,4 @@
11
static class AssemblyLocation
22
{
3-
static AssemblyLocation()
4-
{
5-
var assembly = typeof(AssemblyLocation).Assembly;
6-
7-
var path = assembly.Location
8-
.Replace("file:///", "")
9-
.Replace("file://", "")
10-
.Replace(@"file:\\\", "")
11-
.Replace(@"file:\\", "");
12-
13-
CurrentDirectory = Path.GetDirectoryName(path)!;
14-
}
15-
16-
public static readonly string CurrentDirectory;
17-
}
3+
public static readonly string CurrentDirectory = AppContext.BaseDirectory;
4+
}

src/DiffEngineTray/GlobalUsings.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@
33
global using Serilog;
44
global using System.Text.Json;
55
global using System.Text.Json.Serialization;
6+
global using System.Text.Json.Serialization.Metadata;
67
global using System.Diagnostics.CodeAnalysis;

src/DiffEngineTray/PiperServer.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,12 +63,12 @@ static async Task Handle(TcpListener listener, Action<MovePayload> move, Action<
6363
if (payload.Contains("\"Type\":\"Move\"") ||
6464
payload.Contains("\"Type\": \"Move\""))
6565
{
66-
move(Serializer.Deserialize<MovePayload>(payload));
66+
move(Serializer.Deserialize(payload, AppJsonContext.Default.MovePayload));
6767
}
6868
else if (payload.Contains("\"Type\":\"Delete\"") ||
6969
payload.Contains("\"Type\": \"Delete\""))
7070
{
71-
delete(Serializer.Deserialize<DeletePayload>(payload));
71+
delete(Serializer.Deserialize(payload, AppJsonContext.Default.DeletePayload));
7272
}
7373
else
7474
{

src/DiffEngineTray/Serializer.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
static class Serializer
1+
static class Serializer
22
{
3-
public static T Deserialize<T>(string payload)
3+
public static T Deserialize<T>(string payload, JsonTypeInfo<T> jsonTypeInfo)
44
{
55
try
66
{
7-
return JsonSerializer.Deserialize<T>(payload)!;
7+
return JsonSerializer.Deserialize(payload, jsonTypeInfo)!;
88
}
99
catch (Exception exception)
1010
{
@@ -16,4 +16,4 @@ public static T Deserialize<T>(string payload)
1616
exception);
1717
}
1818
}
19-
}
19+
}

src/DiffEngineTray/Settings/SettingsHelper.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public static async Task<Settings> Read()
1616
if (File.Exists(FilePath))
1717
{
1818
await using var stream = File.OpenRead(FilePath);
19-
settings = (await JsonSerializer.DeserializeAsync<Settings>(stream))!;
19+
settings = (await JsonSerializer.DeserializeAsync(stream, AppJsonContext.Default.Settings))!;
2020
}
2121
else
2222
{
@@ -35,6 +35,6 @@ public static async Task Write(Settings settings)
3535
MaxInstance.SetForUser(settings.MaxInstancesToLaunch);
3636
File.Delete(FilePath);
3737
await using var stream = File.OpenWrite(FilePath);
38-
await JsonSerializer.SerializeAsync(stream, settings);
38+
await JsonSerializer.SerializeAsync(stream, settings, AppJsonContext.Default.Settings);
3939
}
4040
}

0 commit comments

Comments
 (0)