Skip to content

Commit 90c0963

Browse files
author
Oren (electricessence)
committed
Revised interfaces to allow for casting to specific serializer.
1 parent 9fbcb9f commit 90c0963

12 files changed

Lines changed: 76 additions & 15 deletions
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
namespace Open.Serialization.Json
2+
{
3+
public interface IJsonDeserialize : IDeserialize
4+
{
5+
}
6+
7+
public interface IJsonDeserialize<T> : IDeserialize<T>
8+
{
9+
}
10+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
namespace Open.Serialization.Json
2+
{
3+
public interface IJsonDeserializeAsync : IDeserializeAsync
4+
{
5+
}
6+
7+
public interface IJsonDeserializeAsync<T> : IDeserializeAsync<T>
8+
{
9+
}
10+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
namespace Open.Serialization.Json
2+
{
3+
public interface IJsonSerialize : ISerialize
4+
{
5+
}
6+
7+
public interface IJsonSerialize<T> : ISerialize<T>
8+
{
9+
}
10+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
namespace Open.Serialization.Json
2+
{
3+
public interface IJsonSerializeAsync : ISerializeAsync
4+
{
5+
}
6+
7+
public interface IJsonSerializeAsync<T> : ISerializeAsync<T>
8+
{
9+
}
10+
}

Open.Serialization.Json/IJsonSerializer.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
{
33
// Provided as a means of specificity when setting up DI.
44

5-
public interface IJsonSerializer : ISerializer
5+
public interface IJsonSerializer : ISerializer, IJsonSerialize, IJsonDeserialize, IJsonDeserializeAsync, IJsonSerializeAsync
66
{
77
}
88

9-
public interface IJsonSerializer<T> : ISerializer<T>
9+
public interface IJsonSerializer<T> : ISerializer<T>, IJsonSerialize<T>, IJsonDeserialize<T>, IJsonDeserializeAsync<T>, IJsonSerializeAsync<T>
1010
{
1111
}
1212
}

Open.Serialization.Json/IJsonSerializerFactory.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
{
33
public interface IJsonSerializerFactory
44
{
5-
IDeserialize GetDeserializer(bool caseSensitive = false);
6-
IDeserializeAsync GetAsyncDeserializer(bool caseSensitive = false);
5+
IJsonDeserialize GetDeserializer(bool caseSensitive = false);
6+
IJsonDeserializeAsync GetAsyncDeserializer(bool caseSensitive = false);
77

8-
ISerialize GetSerializer(IJsonSerializationOptions options = null);
9-
ISerializeAsync GetAsyncSerializer(IJsonSerializationOptions options = null);
8+
IJsonSerialize GetSerializer(IJsonSerializationOptions options = null);
9+
IJsonSerializeAsync GetAsyncSerializer(IJsonSerializationOptions options = null);
1010
}
1111
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Text;
4+
5+
namespace Open.Serialization.Json
6+
{
7+
public abstract class JsonSerializerBase : SerializerBase, IJsonSerializer
8+
{
9+
}
10+
11+
public abstract class JsonSerializerBase<T> : SerializerBase<T>, IJsonSerializer<T>
12+
{
13+
}
14+
}

Open.Serialization.Json/JsonSerializerFactoryBase.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,20 @@
22
{
33
public abstract class JsonSerializerFactoryBase : IJsonSerializerFactory
44
{
5-
protected abstract SerializerBase GetDeserializerInternal(bool caseSensitive);
5+
protected abstract JsonSerializerBase GetDeserializerInternal(bool caseSensitive);
66

7-
public IDeserialize GetDeserializer(bool caseSensitive = false)
7+
public IJsonDeserialize GetDeserializer(bool caseSensitive = false)
88
=> GetDeserializerInternal(caseSensitive);
99

10-
public IDeserializeAsync GetAsyncDeserializer(bool caseSensitive = false)
10+
public IJsonDeserializeAsync GetAsyncDeserializer(bool caseSensitive = false)
1111
=> GetDeserializerInternal(caseSensitive);
1212

13-
protected abstract SerializerBase GetSerializerInternal(IJsonSerializationOptions options);
13+
protected abstract JsonSerializerBase GetSerializerInternal(IJsonSerializationOptions options);
1414

15-
public ISerialize GetSerializer(IJsonSerializationOptions options = null)
15+
public IJsonSerialize GetSerializer(IJsonSerializationOptions options = null)
1616
=> GetSerializerInternal(options);
1717

18-
public ISerializeAsync GetAsyncSerializer(IJsonSerializationOptions options = null)
18+
public IJsonSerializeAsync GetAsyncSerializer(IJsonSerializationOptions options = null)
1919
=> GetSerializerInternal(options);
2020
}
2121
}

Open.Serialization.Json/Open.Serialization.Json.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ Part of the "Open" set of libraries.
2121
</PropertyGroup>
2222

2323
<ItemGroup>
24-
<PackageReference Include="Open.Serialization" Version="1.0.0" />
24+
<PackageReference Include="Open.Serialization" Version="1.1.0" />
2525
</ItemGroup>
2626

2727
</Project>

Open.Serialization/ISerializer.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
/// </summary>
66
public interface ISerializer : ISerialize, IDeserialize
77
{
8+
ISerializer<T> Cast<T>();
89
}
910

1011
/// <summary>
@@ -19,6 +20,7 @@ public interface ISerializer<T> : ISerialize<T>, IDeserialize<T>
1920
/// </summary>
2021
public interface IAsyncSerializer : ISerializeAsync, IDeserializeAsync
2122
{
23+
IAsyncSerializer<T> Cast<T>();
2224
}
2325

2426
/// <summary>

0 commit comments

Comments
 (0)