Skip to content

Commit f24d8bc

Browse files
committed
Update README
1 parent ea82b9c commit f24d8bc

File tree

1 file changed

+25
-6
lines changed

1 file changed

+25
-6
lines changed

README.md

+25-6
Original file line numberDiff line numberDiff line change
@@ -78,11 +78,12 @@ public abstract record IpAddr : ISpanFormattable, ISpanParsable<IpAddr>
7878
public static bool TryParse([NotNullWhen(true)] string? s, IFormatProvider? provider, [MaybeNullWhen(false)] out IpAddr result);
7979

8080
public static int Count { get; } => 3;
81-
public static string? GetName(IpAddr t);
81+
public static string? GetName(IpAddr ipaddr);
8282
public static string[] GetNames() => [nameof(V4), nameof(V6), nameof(None)];
83-
public static byte GetNumericValue(IpAddr t);
84-
public static IpAddrVariant ConvertEnum(IpAddr t);
85-
public static bool TryConvertEnum([NotNullWhen(true)] IpAddr? t, [MaybeNullWhen(false)] out IpAddrVariant result);
83+
public static ReadOnlySpan<byte> GetUtf8Name(IpAddr ipaddr);
84+
public static byte GetNumericValue(IpAddr ipaddr);
85+
public static IpAddrVariant ConvertEnum(IpAddr ipaddr);
86+
public static bool TryConvertEnum([NotNullWhen(true)] IpAddr? ipaddr, [MaybeNullWhen(false)] out IpAddrVariant result);
8687
public static IpAddr Parse(ReadOnlySpan<char> s, bool ignoreCase, IFormatProvider? provider = default);
8788
public static bool TryParse(ReadOnlySpan<char> s, out IpAddr result);
8889
public static bool TryParse(ReadOnlySpan<char> s, bool ignoreCase, IFormatProvider? provider, [MaybeNullWhen(false)] out IpAddr result);
@@ -94,7 +95,6 @@ public abstract record IpAddr : ISpanFormattable, ISpanParsable<IpAddr>
9495
<details><summary>Generated All Code(IpAddr.g.cs)</summary>
9596

9697
```csharp
97-
9898
// <auto-generated> This .cs file is generated by VariantEnum. </auto-generated>
9999
#nullable enable
100100
#pragma warning disable CS0219 // The variable 'variable' is assigned but its value is never used
@@ -268,6 +268,18 @@ public abstract record IpAddr :
268268
[MethodImpl(MethodImplOptions.AggressiveInlining)]
269269
public static string[] GetNames() => [nameof(V4), nameof(V6), nameof(None)];
270270

271+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
272+
public static ReadOnlySpan<byte> GetUtf8Name(IpAddr ipaddr)
273+
{
274+
return ipaddr switch
275+
{
276+
V4 => "V4"u8,
277+
V6 => "V6"u8,
278+
None => "None"u8,
279+
_ => []
280+
};
281+
}
282+
271283
[MethodImpl(MethodImplOptions.AggressiveInlining)]
272284
public static byte GetNumericValue(IpAddr ipaddr)
273285
{
@@ -351,7 +363,7 @@ public abstract record IpAddr :
351363
[MethodImpl(MethodImplOptions.AggressiveInlining)]
352364
public static bool TryParse(ReadOnlySpan<char> s, IFormatProvider? provider, [MaybeNullWhen(false)] out IpAddr result)
353365
{
354-
return TryParse(s, false, null, out result);
366+
return TryParse(s, false, provider, out result);
355367
}
356368

357369
public static bool TryParse(ReadOnlySpan<char> s, bool ignoreCase, IFormatProvider? provider, [MaybeNullWhen(false)] out IpAddr result)
@@ -495,6 +507,13 @@ foreach (var name in names)
495507
// None
496508
```
497509

510+
### GetUtf8Name
511+
512+
```csharp
513+
var utf8Name = IpAddr.GetUtf8Name(new IpAddr.V4(127, 0, 0, 1));
514+
Console.WriteLine(Encoding.UTF8.GetString(utf8Name)); // V4
515+
```
516+
498517
### IsDefined
499518

500519
```csharp

0 commit comments

Comments
 (0)