Skip to content

Commit

Permalink
Added pascal case policy
Browse files Browse the repository at this point in the history
  • Loading branch information
YohDeadfall committed Apr 11, 2024
1 parent 8d6bca5 commit 14f0997
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 3 deletions.
9 changes: 6 additions & 3 deletions src/JsonNamingPolicies.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,16 @@ namespace Yoh.Text.Json.NamingPolicies
{
public static class JsonNamingPolicies
{
private static JsonCamelCaseNamingPolicy? _camelCase;
private static JsonPascalCaseNamingPolicy? _pascalCase;
private static JsonSnakeCaseLowerNamingPolicy? _snakeCaseLower;
private static JsonSnakeCaseUpperNamingPolicy? _snakeCaseUpper;
private static JsonKebabCaseLowerNamingPolicy? _kebabCaseLower;
private static JsonKebabCaseUpperNamingPolicy? _kebabCaseUpper;
private static JsonCamelCaseNamingPolicy? _camelCase;

public static JsonNamingPolicy CamelCase => _camelCase ??= new JsonCamelCaseNamingPolicy();

public static JsonNamingPolicy PascalCase => _pascalCase ??= new JsonPascalCaseNamingPolicy();

public static JsonNamingPolicy SnakeCaseLower => _snakeCaseLower ??= new JsonSnakeCaseLowerNamingPolicy();

Expand All @@ -17,7 +22,5 @@ public static class JsonNamingPolicies
public static JsonNamingPolicy KebabCaseLower => _kebabCaseLower ??= new JsonKebabCaseLowerNamingPolicy();

public static JsonNamingPolicy KebabCaseUpper => _kebabCaseUpper ??= new JsonKebabCaseUpperNamingPolicy();

public static JsonNamingPolicy CamelCase => _camelCase ??= new JsonCamelCaseNamingPolicy();
}
}
18 changes: 18 additions & 0 deletions src/JsonPascalCaseNamingPolicy.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
using System;

namespace Yoh.Text.Json.NamingPolicies
{
internal sealed class JsonPascalCaseNamingPolicy : JsonNamingPolicyBase
{
protected override int TryWriteWord(bool first, ReadOnlySpan<char> word, Span<char> destination)
{
var written = word.ToLowerInvariant(destination);
if (written > 0)
{
destination[0] = char.ToUpperInvariant(destination[0]);
}

return written;
}
}
}

0 comments on commit 14f0997

Please sign in to comment.