|
1 | 1 | using System;
|
2 | 2 | using System.Buffers;
|
| 3 | +using System.Buffers.Binary; |
3 | 4 | using System.Buffers.Text;
|
4 | 5 | using System.Diagnostics;
|
5 | 6 | using System.Text;
|
@@ -55,49 +56,31 @@ public void Write(ushort value)
|
55 | 56 | {
|
56 | 57 | if (m_output.Length < 2)
|
57 | 58 | Reallocate(2);
|
58 |
| - var span = m_output.Span; |
59 |
| - span[0] = (byte) value; |
60 |
| - span[1] = (byte) (value >> 8); |
| 59 | + BinaryPrimitives.WriteUInt16LittleEndian(m_output.Span, value); |
61 | 60 | m_output = m_output.Slice(2);
|
62 | 61 | }
|
63 | 62 |
|
64 | 63 | public void Write(int value)
|
65 | 64 | {
|
66 | 65 | if (m_output.Length < 4)
|
67 | 66 | Reallocate(4);
|
68 |
| - var span = m_output.Span; |
69 |
| - span[0] = (byte) value; |
70 |
| - span[1] = (byte) (value >> 8); |
71 |
| - span[2] = (byte) (value >> 16); |
72 |
| - span[3] = (byte) (value >> 24); |
| 67 | + BinaryPrimitives.WriteInt32LittleEndian(m_output.Span, value); |
73 | 68 | m_output = m_output.Slice(4);
|
74 | 69 | }
|
75 | 70 |
|
76 | 71 | public void Write(uint value)
|
77 | 72 | {
|
78 | 73 | if (m_output.Length < 4)
|
79 | 74 | Reallocate(4);
|
80 |
| - var span = m_output.Span; |
81 |
| - span[0] = (byte) value; |
82 |
| - span[1] = (byte) (value >> 8); |
83 |
| - span[2] = (byte) (value >> 16); |
84 |
| - span[3] = (byte) (value >> 24); |
| 75 | + BinaryPrimitives.WriteUInt32LittleEndian(m_output.Span, value); |
85 | 76 | m_output = m_output.Slice(4);
|
86 | 77 | }
|
87 | 78 |
|
88 | 79 | public void Write(ulong value)
|
89 | 80 | {
|
90 | 81 | if (m_output.Length < 8)
|
91 | 82 | Reallocate(8);
|
92 |
| - var span = m_output.Span; |
93 |
| - span[0] = (byte) value; |
94 |
| - span[1] = (byte) (value >> 8); |
95 |
| - span[2] = (byte) (value >> 16); |
96 |
| - span[3] = (byte) (value >> 24); |
97 |
| - span[4] = (byte) (value >> 32); |
98 |
| - span[5] = (byte) (value >> 40); |
99 |
| - span[6] = (byte) (value >> 48); |
100 |
| - span[7] = (byte) (value >> 56); |
| 83 | + BinaryPrimitives.WriteUInt64LittleEndian(m_output.Span, value); |
101 | 84 | m_output = m_output.Slice(8);
|
102 | 85 | }
|
103 | 86 |
|
@@ -242,10 +225,7 @@ public static void WriteLengthEncodedInteger(this ByteBufferWriter writer, ulong
|
242 | 225 | }
|
243 | 226 | else if (value < 16777216)
|
244 | 227 | {
|
245 |
| - writer.Write((byte) 0xfd); |
246 |
| - writer.Write((byte) (value & 0xFF)); |
247 |
| - writer.Write((byte) ((value >> 8) & 0xFF)); |
248 |
| - writer.Write((byte) ((value >> 16) & 0xFF)); |
| 228 | + writer.Write((uint) ((value << 8) | 0xfd)); |
249 | 229 | }
|
250 | 230 | else
|
251 | 231 | {
|
|
0 commit comments