Table of Contents

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 = 0

Filter on TsEffective — when the record's details take effect. Upstream's default, and this enum's.

TsRecord = 1

Filter 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.