INNER CODE UNIT · C#
OptionalStrings
axmolengine/axmol · tools/bindings-generator/src/BatchGeneration.cs:301
private static IReadOnlyList<string> OptionalStrings(JsonElement root, string name) =>
root.TryGetProperty(name, out var value) ? ReadStrings(value, name, false) : Array.Empty<string>();
private static IReadOnlyList<string> OptionalStringOrStrings(JsonElement root, string name)
{
if (!root.TryGetProperty(name, out var value) || value.ValueKind == JsonValueKind.Null)
return Array.Empty<string>();
if (value.ValueKind == JsonValueKind.String)
return new[] { value.GetString()! };
return ReadStrings(value, name, false);
}
private static IReadOnlyList<string> ReadStrings(JsonElement value, string name, bool required)
{
if (value.ValueKind != JsonValueKind.Array)
throw new InvalidDataException($"'{name}' must be an array of strings.");
var result = value.EnumerateArray().Select(x =>
{