Class AdjustmentStatusJsonConverter
- Namespace
- DatabentoDotNet.Reference.Json
- Assembly
- DatabentoDotNet.Reference.dll
Reads and writes AdjustmentStatus as its one-character wire code.
public sealed class AdjustmentStatusJsonConverter : JsonConverter<AdjustmentStatus>
- Inheritance
-
AdjustmentStatusJsonConverter
- Inherited Members
Remarks
An unrecognised code throws. That is the deliberate difference from the ten open code types ReferenceCodeJsonConverter<T> serves, and the argument for it is in ReferenceWireStrings: these alphabets were probed against the live server, so a code outside one means this library is stale rather than that the caller should be handed an opaque string. The offending code is in the message. So is a string whose length is not one, which is unrecognised for the same reason.
A blank is rejected, and the dictionary is the reason. list_enums documents
corporate actions and this is an adjustment_factors field, so it has no group there at
all — but upstream declares it pub status: AdjustmentStatus (adjustment.rs:139)
rather than an Option, which is the whole authority available until #57 sees real rows.
Attached to the type by [JsonConverter], which is what the System.Text.Json
source generator reads — so AdjustmentStatus is AOT-safe wherever a generated
context holds a model carrying one, with no converter to register at a call site.
Write(Utf8JsonWriter, AdjustmentStatus, JsonSerializerOptions) exists so the type is usable in a consumer's own serialization; nothing in
this library calls it, and upstream gives these enums a Serialize impl for the same
reason (enums.rs:65-72).
Properties
HandleNull
true, so a JSON null reaches Read(ref Utf8JsonReader, Type, JsonSerializerOptions) and is rejected
with a message rather than silently becoming default(AdjustmentStatus).
public override bool HandleNull { get; }
Property Value
Remarks
System.Text.Json already passes a null token to a value type's converter, so this restates the framework default rather than changing it. It is stated because the rejection below is the behaviour under test, and a default that quietly changed would turn it into an undefined enum value instead of an exception.
Methods
Read(ref Utf8JsonReader, Type, JsonSerializerOptions)
Reads and converts the JSON to type AdjustmentStatus.
public override AdjustmentStatus Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
Parameters
readerUtf8JsonReaderThe reader.
typeToConvertTypeThe type to convert.
optionsJsonSerializerOptionsAn object that specifies serialization options to use.
Returns
- AdjustmentStatus
The converted value.
Write(Utf8JsonWriter, AdjustmentStatus, JsonSerializerOptions)
Writes a specified value as JSON.
public override void Write(Utf8JsonWriter writer, AdjustmentStatus value, JsonSerializerOptions options)
Parameters
writerUtf8JsonWriterThe writer to write to.
valueAdjustmentStatusThe value to convert to JSON.
optionsJsonSerializerOptionsAn object that specifies serialization options to use.