Skip to content

Commit 874aac0

Browse files
committed
Improve tag resolver API
1 parent f842af6 commit 874aac0

File tree

4 files changed

+18
-16
lines changed

4 files changed

+18
-16
lines changed

src/MessageStudio/Formats/BinaryText/Components/DefaultTagResolver.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,12 @@ public string GetName(ushort group, ushort type)
2020
return (ushort.Parse(name[..split]), ushort.Parse(name[++split..]));
2121
}
2222

23-
public bool WriteBinaryUtf8(RevrsWriter writer, ReadOnlySpan<char> name, in TagParams @params)
23+
public bool WriteBinaryUtf8(RevrsWriter writer, ushort group, ushort type, in TagParams @params)
2424
{
2525
throw new NotImplementedException();
2626
}
2727

28-
public bool WriteBinaryUtf16(RevrsWriter writer, ReadOnlySpan<char> name, in TagParams @params)
28+
public bool WriteBinaryUtf16(RevrsWriter writer, ushort group, ushort type, in TagParams @params)
2929
{
3030
ReadOnlySpan<char> data = @params["Data"];
3131
byte[] buffer = data.IsEmpty ? [] : Convert.FromHexString(data[2..]);
@@ -39,13 +39,15 @@ public bool WriteBinaryUtf16(RevrsWriter writer, ReadOnlySpan<char> name, in Tag
3939
return true;
4040
}
4141

42-
public void WriteText(StringBuilder sb, ReadOnlySpan<char> name, Span<byte> data)
42+
public bool WriteText(StringBuilder sb, ushort group, ushort type, Span<byte> data)
4343
{
4444
if (!data.IsEmpty) {
4545
sb.OpenParam("Data");
4646
sb.Append("0x");
4747
sb.Append(Convert.ToHexString(data));
4848
sb.CloseParam();
4949
}
50+
51+
return true;
5052
}
5153
}

src/MessageStudio/Formats/BinaryText/Components/ITagResolver.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@ public interface ITagResolver
2323
/// </returns>
2424
public (ushort, ushort)? GetGroupAndType(ReadOnlySpan<char> name);
2525

26-
/// <inheritdoc cref="WriteText(StringBuilder, ReadOnlySpan{char}, Span{byte})"/>
27-
public bool WriteBinaryUtf16(RevrsWriter writer, ReadOnlySpan<char> name, in TagParams @params);
26+
/// <inheritdoc cref="WriteText(StringBuilder, ushort, ushort, Span{byte})"/>
27+
public bool WriteBinaryUtf16(RevrsWriter writer, ushort group, ushort type, in TagParams @params);
2828

29-
/// <inheritdoc cref="WriteText(StringBuilder, ReadOnlySpan{char}, Span{byte})"/>
30-
public bool WriteBinaryUtf8(RevrsWriter writer, ReadOnlySpan<char> name, in TagParams @params);
29+
/// <inheritdoc cref="WriteText(StringBuilder, ushort, ushort, Span{byte})"/>
30+
public bool WriteBinaryUtf8(RevrsWriter writer, ushort group, ushort type, in TagParams @params);
3131

3232
/// <summary>
3333
/// Returns <see langword="true"/> if the tag was recognized
@@ -36,5 +36,5 @@ public interface ITagResolver
3636
/// <param name="writer"></param>
3737
/// <param name="params"></param>
3838
/// <returns></returns>
39-
public void WriteText(StringBuilder sb, ReadOnlySpan<char> name, Span<byte> data);
39+
public bool WriteText(StringBuilder sb, ushort group, ushort type, Span<byte> data);
4040
}

src/MessageStudio/Formats/BinaryText/Components/TagResolver.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@ public class TagResolver
1111

1212
public static void Load(ITagResolver resolver)
1313
{
14-
TagResolverExtension.Register(resolver);
14+
TagResolverExtensions.Register(resolver);
1515
}
1616
}

src/MessageStudio/Formats/BinaryText/Extensions/TagResolverExtension.cs renamed to src/MessageStudio/Formats/BinaryText/Extensions/TagResolverExtensions.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
namespace MessageStudio.Formats.BinaryText.Extensions;
88

9-
public static class TagResolverExtension
9+
public static class TagResolverExtensions
1010
{
1111
public static ITagResolver Resolver { get; private set; } = new DefaultTagResolver();
1212

@@ -25,12 +25,12 @@ internal static void WriteTag(this StringBuilder sb, ushort group, ushort type,
2525

2626
if (Resolver.GetName(group, type) is string name) {
2727
sb.Append(name);
28-
Resolver.WriteText(sb, name, data);
28+
Resolver.WriteText(sb, group, type, data);
2929
}
3030
else {
3131
name = DefaultTagResolver.Shared.GetName(group, type);
3232
sb.Append(name);
33-
DefaultTagResolver.Shared.WriteText(sb, name, data);
33+
DefaultTagResolver.Shared.WriteText(sb, group, type, data);
3434
}
3535

3636
sb.Append("/>");
@@ -48,16 +48,16 @@ internal static void WriteTag(this RevrsWriter writer, ReadOnlySpan<char> text,
4848
writer.Write<byte>(0xE);
4949
writer.Write((byte)group);
5050
writer.Write((byte)type);
51-
if (Resolver.WriteBinaryUtf8(writer, name, @params) == false) {
52-
DefaultTagResolver.Shared.WriteBinaryUtf8(writer, name, @params);
51+
if (Resolver.WriteBinaryUtf8(writer, group, type, @params) == false) {
52+
DefaultTagResolver.Shared.WriteBinaryUtf8(writer, group, type, @params);
5353
}
5454
}
5555
else {
5656
writer.Write<ushort>(0xE);
5757
writer.Write(group);
5858
writer.Write(type);
59-
if (Resolver.WriteBinaryUtf16(writer, name, @params) == false) {
60-
DefaultTagResolver.Shared.WriteBinaryUtf16(writer, name, @params);
59+
if (Resolver.WriteBinaryUtf16(writer, group, type, @params) == false) {
60+
DefaultTagResolver.Shared.WriteBinaryUtf16(writer, group, type, @params);
6161
}
6262
}
6363
}

0 commit comments

Comments
 (0)