Namespace Huml.Net.Serialization
Classes
- HumlConstructorAttribute
Designates the constructor to use during HUML deserialisation. When multiple public constructors exist, annotate exactly one with this attribute.
- HumlConverter
Abstract base class for all HUML converters. Provides a non-generic entry point for collection storage in
HumlOptions.Convertersand type-check dispatch via CanConvert(Type).
- HumlConverterAttribute
Specifies the converter type to use when serialising or deserialising the annotated property, class, or struct. The converter type must derive from HumlConverter.
- HumlConverterFactory
Abstract base for a HUML converter that produces a different concrete HumlConverter instance per requested type, mirroring
System.Text.Json.Serialization.JsonConverterFactory.
- HumlConverter<T>
Typed HUML converter for
T. Override Read(HumlNode) and Write(HumlWriterContext, T) to control howTis deserialised and serialised.
- HumlDerivedTypeAttribute
Registers a concrete derived type and its discriminator label on the polymorphic base class. Repeatable — add one attribute per concrete subtype.
- HumlEnumValueAttribute
Overrides the HUML string name used to represent an individual enum member during serialisation and deserialisation.
- HumlExtensionDataAttribute
Designates a single property as the overflow bucket for HUML keys that do not match any declared property during deserialisation.
- HumlGeneratedContext
Abstract base class for source-generated HUML serialisation contexts. Subclass with
partialand annotate with[HumlSerializable(typeof(T))]to register types; the source generator will emit the HumlTypeInfo<T> implementations.
- HumlIgnoreAttribute
Marks a property to be excluded from HUML serialisation and deserialisation.
- HumlIgnoreDefaultsAttribute
Instructs the HUML serialiser to omit all properties of the decorated type when their runtime value equals the CLR default for their declared type.
- HumlNamingPolicy
Determines the naming policy used to convert a .NET property name to a HUML key during serialisation and deserialisation.
- HumlNamingPolicyAttribute
Overrides the global PropertyNamingPolicy for the annotated property. Specify Unspecified (or omit the attribute) to defer to the global policy.
- HumlNumberHandlingAttribute
Overrides NumberHandling for the annotated property. Takes precedence over the global option during serialisation and deserialisation.
- HumlPolymorphicAttribute
Marks a class or interface as the polymorphic base for discriminator-based dispatch. The discriminator key (default
_type) is emitted as the first mapping entry during serialisation and consumed during deserialisation to select the concrete type.
- HumlPropertyAttribute
Customises how a property is represented in a HUML document.
- HumlPropertyInfo
Describes a single property for use during HUML (de)serialisation. Mirroring
JsonPropertyInfo, delegates are boxed non-generic to avoid covariance and contravariance issues across the type hierarchy.
- HumlRequiredAttribute
Marks a property as required during HUML deserialisation. When a HUML input does not contain a mapping entry for this property,
HumlDeserializeExceptionis thrown listing all missing required members. Has no effect duringHumlSerializer.Populate<T>. MirrorsSystem.Text.Json.Serialization.JsonRequiredAttribute.
- HumlTypeInfo
Non-generic base class for type metadata used in HUML (de)serialisation. This base allows GetTypeInfo(Type, HumlOptions) to return a covariant result without requiring a type parameter at the call site.
- HumlTypeInfo<T>
Provides type metadata for HUML (de)serialisation of
T.
- HumlWriterContext
Provides the write-path context passed to Write(HumlWriterContext, T). Wraps the internal StringBuilder accumulator and serialiser options, exposing append methods without leaking internal types.
Interfaces
- IHumlTypeInfoResolver
Provides HumlTypeInfo instances for types encountered during HUML (de)serialisation. Implement this interface to supply pre-computed type metadata (e.g. from a source generator) instead of the default reflection path. Returning null from GetTypeInfo(Type, HumlOptions) causes the library to fall through to the built-in reflection path for that type.
Enums
- HumlIgnoreCondition
Controls which properties are omitted from HUML serialisation output based on their runtime value.
- InlineMode
Specifies the per-property inline format override for collection serialisation.