Enum SecurityMasterIndex
- Namespace
- DatabentoDotNet.Reference
- Assembly
- DatabentoDotNet.Reference.dll
Which of a security master record's two timestamps security_master.get_range filters on.
public enum SecurityMasterIndex
- Extension Methods
Fields
TsEffective = 0Filter on TsEffective — when the record's details take effect. Upstream's default, and this enum's.
TsRecord = 1Filter on TsRecord — when the record last changed.
Remarks
Port of upstream's security::Index (security.rs:88-93). It names the field the
request range applies to, so it changes which rows come back rather than only how they
are presented: TsEffective asks when the details became true of the security, and
TsRecord asks when Databento last changed the record saying so. A security whose
details have been stable since 1996 but was corrected last week is inside a recent
TsRecord range and outside a recent TsEffective one.
Upstream also uses it as a sort key, and this library does not. Its get_range
sorts the buffered response by whichever field the index names (security.rs:50-53). That
is a second use of the same value, not a second parameter — the sort happens after the response
arrives, and GetRangeAsync(SecurityMasterGetRangeParams, CancellationToken) streams. So the index is sent and
is not sorted by; see that method, and #52.
TsEffective is the zero value, so default agrees with upstream's
#[default]. That is the opposite arrangement from the nine closed reference enums,
which are byte-backed precisely so that default is an undefined value — see
ReferenceWireStrings. The difference is direction of travel rather than
inconsistency: those nine are read off the wire, where a zero would mean a field this library
failed to populate, and this one is only ever written to it, where a zero means the caller left
a defaulted property alone and upstream's builder would have filled in the same value.
SplitDuration makes the same call for the same reason.