using System.Linq;
using Utf8Json.Formatters;
using Utf8Json.Resolvers.Internal;
namespace Utf8Json.Resolvers
{
public static class StandardResolver
{
/// AllowPrivate:False, ExcludeNull:False, NameMutate:Original
public static readonly IJsonFormatterResolver Default = DefaultStandardResolver.Instance;
/// AllowPrivate:False, ExcludeNull:False, NameMutate:CamelCase
public static readonly IJsonFormatterResolver CamelCase = CamelCaseStandardResolver.Instance;
/// AllowPrivate:False, ExcludeNull:False, NameMutate:SnakeCase
public static readonly IJsonFormatterResolver SnakeCase = SnakeCaseStandardResolver.Instance;
/// AllowPrivate:False, ExcludeNull:True, NameMutate:Original
public static readonly IJsonFormatterResolver ExcludeNull = ExcludeNullStandardResolver.Instance;
/// AllowPrivate:False, ExcludeNull:True, NameMutate:CamelCase
public static readonly IJsonFormatterResolver ExcludeNullCamelCase = ExcludeNullCamelCaseStandardResolver.Instance;
/// AllowPrivate:False, ExcludeNull:True, NameMutate:SnakeCase
public static readonly IJsonFormatterResolver ExcludeNullSnakeCase = ExcludeNullSnakeCaseStandardResolver.Instance;
/// AllowPrivate:True, ExcludeNull:False, NameMutate:Original
public static readonly IJsonFormatterResolver AllowPrivate = AllowPrivateStandardResolver.Instance;
/// AllowPrivate:True, ExcludeNull:False, NameMutate:CamelCase
public static readonly IJsonFormatterResolver AllowPrivateCamelCase = AllowPrivateCamelCaseStandardResolver.Instance;
/// AllowPrivate:True, ExcludeNull:False, NameMutate:SnakeCase
public static readonly IJsonFormatterResolver AllowPrivateSnakeCase = AllowPrivateSnakeCaseStandardResolver.Instance;
/// AllowPrivate:True, ExcludeNull:True, NameMutate:Original
public static readonly IJsonFormatterResolver AllowPrivateExcludeNull = AllowPrivateExcludeNullStandardResolver.Instance;
/// AllowPrivate:True, ExcludeNull:True, NameMutate:CamelCase
public static readonly IJsonFormatterResolver AllowPrivateExcludeNullCamelCase = AllowPrivateExcludeNullCamelCaseStandardResolver.Instance;
/// AllowPrivate:True, ExcludeNull:True, NameMutate:SnakeCase
public static readonly IJsonFormatterResolver AllowPrivateExcludeNullSnakeCase = AllowPrivateExcludeNullSnakeCaseStandardResolver.Instance;
}
}
namespace Utf8Json.Resolvers.Internal
{
internal static class StandardResolverHelper
{
internal static readonly IJsonFormatterResolver[] CompositeResolverBase = new[]
{
BuiltinResolver.Instance, // Builtin
#if !NETSTANDARD
Utf8Json.Unity.UnityResolver.Instance,
#endif
EnumResolver.Default, // Enum(default => string)
DynamicGenericResolver.Instance, // T[], List, etc...
AttributeFormatterResolver.Instance // [JsonFormatter]
};
}
internal sealed class DefaultStandardResolver : IJsonFormatterResolver
{
// configure
public static readonly IJsonFormatterResolver Instance = new DefaultStandardResolver();
static readonly IJsonFormatter