Skip to content

Commit

Permalink
Make SignatureReader public (#183)
Browse files Browse the repository at this point in the history
  • Loading branch information
affederaffe committed Feb 19, 2023
1 parent c6938fc commit f20c95a
Showing 1 changed file with 10 additions and 10 deletions.
20 changes: 10 additions & 10 deletions src/Tmds.DBus.Protocol/SignatureReader.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace Tmds.DBus.Protocol;

internal ref struct SignatureReader
public ref struct SignatureReader
{
private ReadOnlySpan<byte> _signature;

Expand Down Expand Up @@ -102,7 +102,7 @@ private static DBusType ReadSingleType(ReadOnlySpan<byte> signature, out int len
return type;
}

static int DetermineLength(ReadOnlySpan<byte> span, byte startChar, byte endChar)
private static int DetermineLength(ReadOnlySpan<byte> span, byte startChar, byte endChar)
{
int length = 1;
int count = 1;
Expand Down Expand Up @@ -151,7 +151,7 @@ private static bool IsBasicType(DBusType type)
(byte)DBusType.Signature,
(byte)DBusType.UnixFd };

public static ReadOnlySpan<byte> ReadSingleType(ref ReadOnlySpan<byte> signature)
private static ReadOnlySpan<byte> ReadSingleType(ref ReadOnlySpan<byte> signature)
{
if (signature.Length == 0)
{
Expand Down Expand Up @@ -183,7 +183,7 @@ public static ReadOnlySpan<byte> ReadSingleType(ref ReadOnlySpan<byte> signature
return rv;
}

public static T Transform<T>(ReadOnlySpan<byte> signature, Func<DBusType, T[], T> map)
internal static T Transform<T>(ReadOnlySpan<byte> signature, Func<DBusType, T[], T> map)
{
DBusType dbusType = signature.Length == 0 ? DBusType.Invalid : (DBusType)signature[0];

Expand All @@ -192,8 +192,8 @@ public static T Transform<T>(ReadOnlySpan<byte> signature, Func<DBusType, T[], T
if ((DBusType)signature[1] == DBusType.DictEntry)
{
signature = signature.Slice(2);
ReadOnlySpan<byte> keySignature = SignatureReader.ReadSingleType(ref signature);
ReadOnlySpan<byte> valueSignature = SignatureReader.ReadSingleType(ref signature);
ReadOnlySpan<byte> keySignature = ReadSingleType(ref signature);
ReadOnlySpan<byte> valueSignature = ReadSingleType(ref signature);
signature = signature.Slice(1);
T keyType = Transform(keySignature, map);
T valueType = Transform(valueSignature, map);
Expand All @@ -210,11 +210,11 @@ public static T Transform<T>(ReadOnlySpan<byte> signature, Func<DBusType, T[], T
else if (dbusType == DBusType.Struct)
{
signature = signature.Slice(1, signature.Length - 2);
int typeCount = SignatureReader.CountTypes(signature);
int typeCount = CountTypes(signature);
T[] innerTypes = new T[typeCount];
for (int i = 0; i < innerTypes.Length; i++)
{
ReadOnlySpan<byte> innerTypeSignature = SignatureReader.ReadSingleType(ref signature);
ReadOnlySpan<byte> innerTypeSignature = ReadSingleType(ref signature);
innerTypes[i] = Transform(innerTypeSignature, map);
}
return map(DBusType.Struct, innerTypes);
Expand All @@ -224,7 +224,7 @@ public static T Transform<T>(ReadOnlySpan<byte> signature, Func<DBusType, T[], T
}

// Counts the number of single types in a signature.
internal static int CountTypes(ReadOnlySpan<byte> signature)
private static int CountTypes(ReadOnlySpan<byte> signature)
{
if (signature.Length == 0)
{
Expand Down Expand Up @@ -268,4 +268,4 @@ static void ReadToEnd(ref ReadOnlySpan<byte> span, byte startChar, byte endChar)
} while (count > 0);
}
}
}
}

0 comments on commit f20c95a

Please sign in to comment.