@@ -11,39 +11,8 @@ namespace Codon.Binary;
1111
1212public static class BinaryCodecs
1313{
14- public static readonly BooleanBinaryCodec Boolean = new ( ) ;
1514
16- public static readonly ByteBinaryCodec Byte = new ( ) ;
17-
18- public static readonly IntBinaryCodec Int = new ( ) ;
19-
20- public static readonly LongBinaryCodec Long = new ( ) ;
21-
22- public static readonly DoubleBinaryCodec Double = new ( ) ;
23-
24- public static readonly FloatBinaryCodec Float = new ( ) ;
25-
26- public static readonly VarIntBinaryCodec VarInt = new ( ) ;
27-
28- public static readonly ByteArrayBinaryCodec ByteArray = new ( ) ;
29-
30- public static readonly BinaryBufferBinaryCodec BinaryBuffer = new ( ) ;
31-
32- public static readonly RawBytesBinaryCodec RawBytes = new ( ) ;
33-
34- public static readonly StringBinaryCodec String = new ( ) ;
35-
36- public static RecursiveBinaryCodec < T > Recursive < T > ( Func < IBinaryCodec < T > , IBinaryCodec < T > > self ) where T : notnull
37- {
38- return new RecursiveBinaryCodec < T > ( self ) ;
39- }
40-
41- public static EnumBinaryCodec < E > Enum < E > ( ) where E : Enum
42- {
43- return new EnumBinaryCodec < E > ( ) ;
44- }
45-
46- public class BooleanBinaryCodec : IBinaryCodec < bool >
15+ public class BooleanBinaryCodec : BinaryCodec < bool >
4716 {
4817 public void Write ( BinaryBuffer buffer , bool value )
4918 {
@@ -56,7 +25,7 @@ public bool Read(BinaryBuffer buffer)
5625 }
5726 }
5827
59- public class ByteBinaryCodec : IBinaryCodec < byte >
28+ public class ByteBinaryCodec : BinaryCodec < byte >
6029 {
6130 public void Write ( BinaryBuffer buffer , byte value )
6231 {
@@ -69,7 +38,7 @@ public byte Read(BinaryBuffer buffer)
6938 }
7039 }
7140
72- public class IntBinaryCodec : IBinaryCodec < int >
41+ public class IntBinaryCodec : BinaryCodec < int >
7342 {
7443 public void Write ( BinaryBuffer buffer , int value )
7544 {
@@ -82,7 +51,7 @@ public int Read(BinaryBuffer buffer)
8251 }
8352 }
8453
85- public class LongBinaryCodec : IBinaryCodec < long >
54+ public class LongBinaryCodec : BinaryCodec < long >
8655 {
8756 public void Write ( BinaryBuffer buffer , long value )
8857 {
@@ -95,7 +64,7 @@ public long Read(BinaryBuffer buffer)
9564 }
9665 }
9766
98- public class FloatBinaryCodec : IBinaryCodec < float >
67+ public class FloatBinaryCodec : BinaryCodec < float >
9968 {
10069 public void Write ( BinaryBuffer buffer , float value )
10170 {
@@ -108,7 +77,7 @@ public float Read(BinaryBuffer buffer)
10877 }
10978 }
11079
111- public class DoubleBinaryCodec : IBinaryCodec < double >
80+ public class DoubleBinaryCodec : BinaryCodec < double >
11281 {
11382 public void Write ( BinaryBuffer buffer , double value )
11483 {
@@ -121,7 +90,7 @@ public double Read(BinaryBuffer buffer)
12190 }
12291 }
12392
124- public class VarIntBinaryCodec : IBinaryCodec < int >
93+ public class VarIntBinaryCodec : BinaryCodec < int >
12594 {
12695 private const int SEGMENT_BITS = 0x7F ;
12796 private const int CONTINUE_BIT = 0x80 ;
@@ -165,56 +134,56 @@ public int Read(BinaryBuffer buffer)
165134 }
166135 }
167136
168- public class ByteArrayBinaryCodec : IBinaryCodec < byte [ ] >
137+ public class ByteArrayBinaryCodec : BinaryCodec < byte [ ] >
169138 {
170139 public void Write ( BinaryBuffer buffer , byte [ ] value )
171140 {
172- VarInt . Write ( buffer , value . Length ) ;
141+ BinaryCodec . VarInt . Write ( buffer , value . Length ) ;
173142 buffer . WriteBytes ( value ) ;
174143 }
175144
176145 public byte [ ] Read ( BinaryBuffer buffer )
177146 {
178- var size = VarInt . Read ( buffer ) ;
147+ var size = BinaryCodec . VarInt . Read ( buffer ) ;
179148 return buffer . ReadBytes ( size ) . ToArray ( ) ;
180149 }
181150 }
182151
183- public class BinaryBufferBinaryCodec : IBinaryCodec < BinaryBuffer >
152+ public class BinaryBufferBinaryCodec : BinaryCodec < BinaryBuffer >
184153 {
185154 public void Write ( BinaryBuffer buffer , BinaryBuffer value )
186155 {
187156 var array = value . ToArray ( ) ;
188- VarInt . Write ( buffer , array . Length ) ;
157+ BinaryCodec . VarInt . Write ( buffer , array . Length ) ;
189158 buffer . WriteBytes ( array ) ;
190159 }
191160
192161 public BinaryBuffer Read ( BinaryBuffer buffer )
193162 {
194- var size = VarInt . Read ( buffer ) ;
163+ var size = BinaryCodec . VarInt . Read ( buffer ) ;
195164 return buffer . ReadBytes ( size ) . ToArray ( ) . ToBinaryBuffer ( ) ;
196165 }
197166 }
198167
199- public class StringBinaryCodec : IBinaryCodec < string >
168+ public class StringBinaryCodec : BinaryCodec < string >
200169 {
201170 public void Write ( BinaryBuffer buffer , string value )
202171 {
203172 var stringBytes = Encoding . UTF8 . GetBytes ( value ) ;
204- VarInt . Write ( buffer , stringBytes . Length ) ;
173+ BinaryCodec . VarInt . Write ( buffer , stringBytes . Length ) ;
205174 buffer . WriteBytes ( stringBytes ) ;
206175 }
207176
208177 public string Read ( BinaryBuffer buffer )
209178 {
210- var size = VarInt . Read ( buffer ) ;
179+ var size = BinaryCodec . VarInt . Read ( buffer ) ;
211180 if ( size < 0 ) throw new InvalidDataException ( "String cannot have negative length" ) ;
212181 var stringBytes = buffer . ReadBytes ( size ) ;
213182 return Encoding . UTF8 . GetString ( stringBytes ) ;
214183 }
215184 }
216185
217- public class RawBytesBinaryCodec : IBinaryCodec < byte [ ] >
186+ public class RawBytesBinaryCodec : BinaryCodec < byte [ ] >
218187 {
219188 public void Write ( BinaryBuffer buffer , byte [ ] value )
220189 {
@@ -227,21 +196,21 @@ public byte[] Read(BinaryBuffer buffer)
227196 }
228197 }
229198
230- public class OptionalBinaryCodec < T > ( IBinaryCodec < T > innerCodec ) : IBinaryCodec < T ? > where T : notnull
199+ public class OptionalBinaryCodec < T > ( BinaryCodec < T > innerCodec ) : BinaryCodec < T ? > where T : notnull
231200 {
232201 public void Write ( BinaryBuffer buffer , T ? value )
233202 {
234- Boolean . Write ( buffer , value != null ) ;
203+ BinaryCodec . Boolean . Write ( buffer , value != null ) ;
235204 if ( value != null ) innerCodec . Write ( buffer , value ) ;
236205 }
237206
238207 public T ? Read ( BinaryBuffer buffer )
239208 {
240- return Boolean . Read ( buffer ) ? innerCodec . Read ( buffer ) : default ;
209+ return BinaryCodec . Boolean . Read ( buffer ) ? innerCodec . Read ( buffer ) : default ;
241210 }
242211 }
243212
244- public class DefaultBinaryCodec < T > ( IBinaryCodec < T > innerCodec , T defaultValue ) : IBinaryCodec < T > where T : notnull
213+ public class DefaultBinaryCodec < T > ( BinaryCodec < T > innerCodec , T defaultValue ) : BinaryCodec < T > where T : notnull
245214 {
246215 public void Write ( BinaryBuffer buffer , T ? value )
247216 {
@@ -250,11 +219,11 @@ public void Write(BinaryBuffer buffer, T? value)
250219
251220 public T Read ( BinaryBuffer buffer )
252221 {
253- return Boolean . Read ( buffer ) ? innerCodec . Read ( buffer ) : defaultValue ;
222+ return BinaryCodec . Boolean . Read ( buffer ) ? innerCodec . Read ( buffer ) : defaultValue ;
254223 }
255224 }
256225
257- public class TransformativeBinaryCodec < T , S > ( IBinaryCodec < T > innerCodec , Func < S , T > from , Func < T , S > to ) : IBinaryCodec < S > where S : notnull where T : notnull
226+ public class TransformativeBinaryCodec < T , S > ( BinaryCodec < T > innerCodec , Func < S , T > from , Func < T , S > to ) : BinaryCodec < S > where S : notnull where T : notnull
258227 {
259228 public void Write ( BinaryBuffer buffer , S value )
260229 {
@@ -268,11 +237,11 @@ public S Read(BinaryBuffer buffer)
268237 }
269238 }
270239
271- public class DictionaryBinaryCodec < K , V > ( IBinaryCodec < K > keyCodec , IBinaryCodec < V > valueCodec ) : IBinaryCodec < Dictionary < K , V > > where K : notnull where V : notnull
240+ public class DictionaryBinaryCodec < K , V > ( BinaryCodec < K > keyCodec , BinaryCodec < V > valueCodec ) : BinaryCodec < Dictionary < K , V > > where K : notnull where V : notnull
272241 {
273242 public void Write ( BinaryBuffer buffer , Dictionary < K , V > value )
274243 {
275- VarInt . Write ( buffer , value . Count ) ;
244+ BinaryCodec . VarInt . Write ( buffer , value . Count ) ;
276245 foreach ( var keyValuePair in value )
277246 {
278247 keyCodec . Write ( buffer , keyValuePair . Key ) ;
@@ -283,7 +252,7 @@ public void Write(BinaryBuffer buffer, Dictionary<K, V> value)
283252 public Dictionary < K , V > Read ( BinaryBuffer buffer )
284253 {
285254 var dict = new Dictionary < K , V > ( ) ;
286- var size = VarInt . Read ( buffer ) ; // how big is my dict...
255+ var size = BinaryCodec . VarInt . Read ( buffer ) ; // how big is my dict...
287256
288257 for ( var i = 0 ; i < size ; i ++ )
289258 {
@@ -296,26 +265,26 @@ public Dictionary<K, V> Read(BinaryBuffer buffer)
296265 }
297266 }
298267
299- public class ListBinaryCodec < T > ( IBinaryCodec < T > innerCodec ) : IBinaryCodec < List < T > > where T : notnull
268+ public class ListBinaryCodec < T > ( BinaryCodec < T > innerCodec ) : BinaryCodec < List < T > > where T : notnull
300269 {
301270 public void Write ( BinaryBuffer buffer , List < T > value )
302271 {
303- VarInt . Write ( buffer , value . Count ) ;
272+ BinaryCodec . VarInt . Write ( buffer , value . Count ) ;
304273 value . ForEach ( item => innerCodec . Write ( buffer , item ) ) ;
305274 }
306275
307276 public List < T > Read ( BinaryBuffer buffer )
308277 {
309278 var list = new List < T > ( ) ;
310- var size = VarInt . Read ( buffer ) ;
279+ var size = BinaryCodec . VarInt . Read ( buffer ) ;
311280
312281 for ( var i = 0 ; i < size ; i ++ ) list . Add ( innerCodec . Read ( buffer ) ) ;
313282
314283 return list ;
315284 }
316285 }
317286
318- public class UnionBinaryCodec < T , K > ( IBinaryCodec < K > keyCodec , Func < T , K > keyFunc , Func < K , IBinaryCodec < T > > serializerFactory ) : IBinaryCodec < T >
287+ public class UnionBinaryCodec < T , K > ( BinaryCodec < K > keyCodec , Func < T , K > keyFunc , Func < K , BinaryCodec < T > > serializerFactory ) : BinaryCodec < T >
319288 {
320289 public void Write ( BinaryBuffer buffer , T value )
321290 {
@@ -334,13 +303,13 @@ public T Read(BinaryBuffer buffer)
334303 }
335304 }
336305
337- public class RecursiveBinaryCodec < T > : IBinaryCodec < T > where T : notnull
306+ public class RecursiveBinaryCodec < T > : BinaryCodec < T > where T : notnull
338307 {
339- private readonly Lazy < IBinaryCodec < T > > _delegate ;
308+ private readonly Lazy < BinaryCodec < T > > _delegate ;
340309
341- public RecursiveBinaryCodec ( Func < IBinaryCodec < T > , IBinaryCodec < T > > self )
310+ public RecursiveBinaryCodec ( Func < BinaryCodec < T > , BinaryCodec < T > > self )
342311 {
343- _delegate = new Lazy < IBinaryCodec < T > > ( ( ) => self . Invoke ( this ) ) ;
312+ _delegate = new Lazy < BinaryCodec < T > > ( ( ) => self . Invoke ( this ) ) ;
344313 }
345314
346315 public void Write ( BinaryBuffer buffer , T value )
@@ -354,19 +323,19 @@ public T Read(BinaryBuffer buffer)
354323 }
355324 }
356325
357- public class EnumBinaryCodec < E > : IBinaryCodec < E > where E : Enum
326+ public class EnumBinaryCodec < E > : BinaryCodec < E > where E : Enum
358327 {
359328 private Array _entries = System . Enum . GetValues ( typeof ( E ) ) ;
360329
361330 public void Write ( BinaryBuffer buffer , E value )
362331 {
363332 var ordinal = Array . IndexOf ( _entries , value ) ;
364- VarInt . Write ( buffer , ordinal ) ;
333+ BinaryCodec . VarInt . Write ( buffer , ordinal ) ;
365334 }
366335
367336 public E Read ( BinaryBuffer buffer )
368337 {
369- var ordinal = VarInt . Read ( buffer ) ;
338+ var ordinal = BinaryCodec . VarInt . Read ( buffer ) ;
370339 if ( ordinal < 0 || ordinal >= _entries . Length ) throw new IndexOutOfRangeException ( $ "Ordinal { ordinal } is outside the range [0, { _entries . Length - 1 } ] for enum { typeof ( E ) . Name } ") ;
371340
372341 return ( E ) _entries . GetValue ( ordinal ) ! ;
0 commit comments