Skip to content

Commit e91fd74

Browse files
🎨
1 parent 23f6550 commit e91fd74

File tree

5 files changed

+20
-17
lines changed

5 files changed

+20
-17
lines changed

TronDotNet.SystemTextJson/TronJsonEncoder.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,11 +96,11 @@ private static Status EncodeSwitch(ReadOnlySpan<byte> buffer, int nestingDepth,
9696
writer.WriteStringValue(value.GetUtf8());
9797
break;
9898
case ValueKind.Object:
99-
if ((status = EncodeObject(buffer, value.TypeOffset, nestingDepth, ref writer)) < 0)
99+
if ((status = EncodeObject(buffer, value.Offset, nestingDepth, ref writer)) < 0)
100100
return status;
101101
break;
102102
case ValueKind.Array:
103-
if ((status = EncodeArray(buffer, value.TypeOffset, nestingDepth, ref writer)) < 0)
103+
if ((status = EncodeArray(buffer, value.Offset, nestingDepth, ref writer)) < 0)
104104
return status;
105105
break;
106106
default:

TronDotNet.Tests/BufferApiExamples.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ public void Can_read_messages()
106106
if (priceValue.GetValueKind() == ValueKind.F64)
107107
{
108108
output.WriteLine($"price value: {priceValue.GetDouble()}");
109-
output.WriteLine($"price value type size: {priceValue.GetValueKindSize()}");
109+
output.WriteLine($"price value type size: {priceValue.GetValueSize()}");
110110
}
111111

112112
var entryCount = Tron.GetCount(buffer, 0);

TronDotNet.Tests/ContextApiExamples.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ public void Can_read_messages()
110110
if (priceValue.GetValueKind() == ValueKind.F64)
111111
{
112112
output.WriteLine($"price value: {priceValue.GetDouble()}");
113-
output.WriteLine($"price value type size: {priceValue.GetValueKindSize()}");
113+
output.WriteLine($"price value type size: {priceValue.GetValueSize()}");
114114
}
115115

116116
var entryCount = context.GetCount(0);

TronDotNet/Lite3.Core.H.cs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,8 @@ public enum ValueKind : byte
101101
public readonly ref struct ReadOnlyValueEntry(ReadOnlySpan<byte> buffer, int startOffset)
102102
{
103103
private readonly ReadOnlySpan<byte> _buffer = buffer;
104-
internal byte Type => _buffer[TypeOffset];
105-
public readonly int TypeOffset = startOffset;
104+
internal byte Type => _buffer[Offset];
105+
public readonly int Offset = startOffset;
106106
internal readonly int ValueOffset = startOffset + ValueSize;
107107
internal ReadOnlySpan<byte> Value => _buffer[ValueOffset..];
108108
}
@@ -118,7 +118,7 @@ internal ref struct ValueEntry(Span<byte> buffer, int startOffset)
118118
private const int ValueSize = 1;
119119

120120
/// <remarks><em>Ported from C <c>lite3_type_sizes</c>.</em></remarks>
121-
private static readonly int[] ValueKindSizes =
121+
internal static readonly int[] ValueKindSizes =
122122
[
123123
0, // Null
124124
1, // Bool
@@ -1062,7 +1062,7 @@ public static ValueKind GetValueKind(ReadOnlySpan<byte> buffer, int offset, Read
10621062
/// </remarks>
10631063
[TronApi(KeyDataArg = nameof(keyData))]
10641064
[MethodImpl(MethodImplOptions.AggressiveInlining)]
1065-
public static Status GetValueKindSize(ReadOnlySpan<byte> buffer, int offset, ReadOnlySpan<byte> key, KeyData keyData, out uint value)
1065+
public static Status GetValueSize(ReadOnlySpan<byte> buffer, int offset, ReadOnlySpan<byte> key, KeyData keyData, out uint value)
10661066
{
10671067
Status status;
10681068
value = 0;
@@ -1469,7 +1469,7 @@ internal static Status GetBytes(ReadOnlySpan<byte> buffer, int offset, ReadOnlyS
14691469
}
14701470

14711471
value = new BytesEntry(
1472-
BinaryPrimitives.ReadUInt32LittleEndian(buffer[entry.TypeOffset..]),
1472+
BinaryPrimitives.ReadUInt32LittleEndian(buffer[entry.Offset..]),
14731473
(int)BinaryPrimitives.ReadUInt32LittleEndian(buffer[entry.ValueOffset..]),
14741474
entry.ValueOffset
14751475
);
@@ -1544,7 +1544,7 @@ public static Status GetObject(ReadOnlySpan<byte> buffer, int offset, ReadOnlySp
15441544
return Status.ValueKindDoesNotMatch;
15451545
}
15461546

1547-
objectOffset = entry.TypeOffset;
1547+
objectOffset = entry.Offset;
15481548
return 0;
15491549
}
15501550

@@ -1577,7 +1577,7 @@ public static Status GetArray(ReadOnlySpan<byte> buffer, int offset, ReadOnlySpa
15771577
return Status.ValueKindDoesNotMatch;
15781578
}
15791579

1580-
arrayOffset = entry.TypeOffset;
1580+
arrayOffset = entry.Offset;
15811581
return 0;
15821582
}
15831583

@@ -1760,7 +1760,7 @@ public static Status ArrayGetObject(ReadOnlySpan<byte> buffer, int offset, uint
17601760
return Status.ValueKindDoesNotMatch;
17611761
}
17621762

1763-
objectOffset = entry.TypeOffset;
1763+
objectOffset = entry.Offset;
17641764
return 0;
17651765
}
17661766

@@ -1789,7 +1789,7 @@ public static Status ArrayGetArray(ReadOnlySpan<byte> buffer, int offset, uint i
17891789
return Status.ValueKindDoesNotMatch;
17901790
}
17911791

1792-
arrayOffset = entry.TypeOffset;
1792+
arrayOffset = entry.Offset;
17931793
return 0;
17941794
}
17951795

@@ -1852,7 +1852,7 @@ public static ValueKind GetValueKind(in ReadOnlyValueEntry entry)
18521852
/// </remarks>
18531853
[TronApi(IsTryPattern = false)]
18541854
[MethodImpl(MethodImplOptions.AggressiveInlining)]
1855-
internal static int GetValueKindSize(in ReadOnlyValueEntry entry)
1855+
internal static int GetValueSize(in ReadOnlyValueEntry entry)
18561856
{
18571857
var type = (ValueKind)entry.Type;
18581858

TronDotNet/Tron.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -101,10 +101,13 @@ public string GetStringValue(TronContext context)
101101
[MethodImpl(MethodImplOptions.AggressiveInlining)]
102102
public Lite3.ValueKind GetValueKind() => Lite3.GetValueKind(value);
103103

104-
/// <inheritdoc cref="Lite3.GetValueKindSize" />
104+
/// <inheritdoc cref="Lite3.GetValueSize" />
105105
[MethodImpl(MethodImplOptions.AggressiveInlining)]
106-
public int GetValueKindSize() => Lite3.GetValueKindSize(value);
107-
106+
public int GetValueSize() => Lite3.GetValueSize(value);
107+
108+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
109+
public int GetSize() => Lite3.ValueKindSizes[value.Type] + Lite3.GetValueSize(value);
110+
108111
/// <inheritdoc cref="Lite3.ValueIsNull" />
109112
[MethodImpl(MethodImplOptions.AggressiveInlining)]
110113
public bool IsNull() => Lite3.ValueIsNull(value);

0 commit comments

Comments
 (0)