#[repr(C)]pub struct StatMsgV3 {
pub hd: RecordHeader,
pub ts_recv: u64,
pub ts_ref: u64,
pub price: i64,
pub quantity: i64,
pub sequence: u32,
pub ts_in_delta: i32,
pub stat_type: u16,
pub channel_id: u16,
pub update_action: u8,
pub stat_flags: u8,
/* private fields */
}Expand description
A statistics message. A catchall for various data disseminated by publishers.
The stat_type indicates the statistic contained in the message.
Fields§
§hd: RecordHeaderThe common header.
ts_recv: u64The capture-server-received timestamp expressed as the number of nanoseconds since the UNIX epoch.
ts_ref: u64The reference timestamp of the statistic value expressed as the number of
nanoseconds since the UNIX epoch. Will be crate::UNDEF_TIMESTAMP when
unused.
price: i64The value for price statistics expressed as a signed integer where every 1 unit
corresponds to 1e-9, i.e. 1/1,000,000,000 or 0.000000001. Will be
UNDEF_PRICE when unused.
quantity: i64The value for non-price statistics. Will be crate::UNDEF_STAT_QUANTITY when
unused.
sequence: u32The message sequence number assigned at the venue.
ts_in_delta: i32The delta of ts_recv - ts_exchange_send, max 2 seconds.
stat_type: u16The type of statistic value contained in the message. Refer to the
StatType for variants.
channel_id: u16The channel ID assigned by Databento as an incrementing integer starting at zero.
update_action: u8Indicates if the statistic is newly added (1) or deleted (2). (Deleted is only used with some stat types)
stat_flags: u8Additional flags associate with certain stat types.
Implementations§
Source§impl StatMsg
impl StatMsg
Sourcepub fn price_f64(&self) -> f64
pub fn price_f64(&self) -> f64
Returns the price as a floating point.
UNDEF_PRICE will be converted to NaN.
Sourcepub fn ts_recv(&self) -> Option<OffsetDateTime>
pub fn ts_recv(&self) -> Option<OffsetDateTime>
Parses the raw capture-server-received timestamp into a datetime. Returns None
if ts_recv contains the sentinel for a null timestamp.
Sourcepub fn ts_ref(&self) -> Option<OffsetDateTime>
pub fn ts_ref(&self) -> Option<OffsetDateTime>
Parses the raw reference timestamp of the statistic value into a datetime.
Returns None if ts_ref contains the sentinel for a null timestamp.
Sourcepub fn update_action(&self) -> Result<StatUpdateAction>
pub fn update_action(&self) -> Result<StatUpdateAction>
Tries to convert the raw update_action to an enum.
§Errors
This function returns an error if the update_action field does not
contain a valid StatUpdateAction.
Sourcepub fn ts_in_delta(&self) -> Duration
pub fn ts_in_delta(&self) -> Duration
Parses the raw ts_in_delta—the delta of ts_recv - ts_exchange_send—into a duration.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for StatMsgV3
impl<'de> Deserialize<'de> for StatMsgV3
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl<'py> IntoPyObject<'py> for StatMsgV3
impl<'py> IntoPyObject<'py> for StatMsgV3
Source§type Output = Bound<'py, <StatMsgV3 as IntoPyObject<'py>>::Target>
type Output = Bound<'py, <StatMsgV3 as IntoPyObject<'py>>::Target>
Source§fn into_pyobject(
self,
py: Python<'py>,
) -> Result<<Self as IntoPyObject<'_>>::Output, <Self as IntoPyObject<'_>>::Error>
fn into_pyobject( self, py: Python<'py>, ) -> Result<<Self as IntoPyObject<'_>>::Output, <Self as IntoPyObject<'_>>::Error>
Source§impl PartialOrd for StatMsgV3
impl PartialOrd for StatMsgV3
Source§impl PyClassImpl for StatMsgV3
impl PyClassImpl for StatMsgV3
Source§const IS_BASETYPE: bool = false
const IS_BASETYPE: bool = false
Source§const IS_SUBCLASS: bool = false
const IS_SUBCLASS: bool = false
Source§const IS_MAPPING: bool = false
const IS_MAPPING: bool = false
Source§const IS_SEQUENCE: bool = false
const IS_SEQUENCE: bool = false
Source§type ThreadChecker = SendablePyClass<StatMsgV3>
type ThreadChecker = SendablePyClass<StatMsgV3>
Source§type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
Source§type BaseNativeType = PyAny
type BaseNativeType = PyAny
PyAny by default, and when you declare
#[pyclass(extends=PyDict)], it’s PyDict.fn items_iter() -> PyClassItemsIter
fn dict_offset() -> Option<Py_ssize_t>
fn lazy_type_object() -> &'static LazyTypeObject<Self>
fn weaklist_offset() -> Option<isize>
Source§impl PyClassNewTextSignature<StatMsgV3> for PyClassImplCollector<StatMsgV3>
Available on crate feature python only.
impl PyClassNewTextSignature<StatMsgV3> for PyClassImplCollector<StatMsgV3>
python only.fn new_text_signature(self) -> Option<&'static str>
Source§impl PyMethods<StatMsgV3> for PyClassImplCollector<StatMsgV3>
Available on crate feature python only.
impl PyMethods<StatMsgV3> for PyClassImplCollector<StatMsgV3>
python only.fn py_methods(self) -> &'static PyClassItems
Source§impl PyTypeInfo for StatMsgV3
impl PyTypeInfo for StatMsgV3
Source§fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
Source§fn type_object(py: Python<'_>) -> Bound<'_, PyType>
fn type_object(py: Python<'_>) -> Bound<'_, PyType>
Source§fn type_object_bound(py: Python<'_>) -> Bound<'_, PyType>
fn type_object_bound(py: Python<'_>) -> Bound<'_, PyType>
PyTypeInfo::type_objectPyTypeInfo::type_object.Source§fn is_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_type_of(object: &Bound<'_, PyAny>) -> bool
object is an instance of this type or a subclass of this type.Source§fn is_type_of_bound(object: &Bound<'_, PyAny>) -> bool
fn is_type_of_bound(object: &Bound<'_, PyAny>) -> bool
PyTypeInfo::is_type_ofPyTypeInfo::is_type_of.Source§fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
object is an instance of this type.Source§fn is_exact_type_of_bound(object: &Bound<'_, PyAny>) -> bool
fn is_exact_type_of_bound(object: &Bound<'_, PyAny>) -> bool
PyTypeInfo::is_exact_type_ofPyTypeInfo::is_exact_type_of.Source§impl Record for StatMsgV3
impl Record for StatMsgV3
Source§fn header(&self) -> &RecordHeader
fn header(&self) -> &RecordHeader
RecordHeader that comes at the beginning of all
record types.Source§fn raw_index_ts(&self) -> u64
fn raw_index_ts(&self) -> u64
Source§fn record_size(&self) -> usize
fn record_size(&self) -> usize
Source§fn rtype(&self) -> Result<RType>
fn rtype(&self) -> Result<RType>
Source§fn publisher(&self) -> Result<Publisher>
fn publisher(&self) -> Result<Publisher>
publisher_id into an enum which is useful for
exhaustive pattern matching. Read moreSource§fn index_ts(&self) -> Option<OffsetDateTime>
fn index_ts(&self) -> Option<OffsetDateTime>
None if the primary
timestamp contains the sentinel value for a null timestamp. Read moreSource§fn index_date(&self) -> Option<Date>
fn index_date(&self) -> Option<Date>
index_ts()). Returns None if the primary timestamp contains the
sentinel value for a null timestamp.Source§impl RecordMut for StatMsgV3
impl RecordMut for StatMsgV3
Source§fn header_mut(&mut self) -> &mut RecordHeader
fn header_mut(&mut self) -> &mut RecordHeader
RecordHeader that comes at the beginning of
all record types.Source§impl StatRec for StatMsg
impl StatRec for StatMsg
Source§const UNDEF_STAT_QUANTITY: i64 = 9_223_372_036_854_775_807i64
const UNDEF_STAT_QUANTITY: i64 = 9_223_372_036_854_775_807i64
quantity.Source§fn stat_type(&self) -> Result<StatType>
fn stat_type(&self) -> Result<StatType>
Source§fn ts_recv(&self) -> Option<OffsetDateTime>
fn ts_recv(&self) -> Option<OffsetDateTime>
None
if ts_recv contains the sentinel for a null timestamp.Source§fn ts_ref(&self) -> Option<OffsetDateTime>
fn ts_ref(&self) -> Option<OffsetDateTime>
None if ts_ref contains the sentinel for a null timestamp.Source§fn update_action(&self) -> Result<StatUpdateAction>
fn update_action(&self) -> Result<StatUpdateAction>
update_action to an enum. Read moreSource§fn price(&self) -> i64
fn price(&self) -> i64
UNDEF_PRICE when unused.impl Copy for StatMsgV3
impl DerefToPyAny for StatMsgV3
impl Eq for StatMsgV3
impl StructuralPartialEq for StatMsgV3
Auto Trait Implementations§
impl Freeze for StatMsgV3
impl RefUnwindSafe for StatMsgV3
impl Send for StatMsgV3
impl Sync for StatMsgV3
impl Unpin for StatMsgV3
impl UnwindSafe for StatMsgV3
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FromPyObject<'_> for T
impl<T> FromPyObject<'_> for T
Source§impl<'py, T> FromPyObjectBound<'_, 'py> for Twhere
T: FromPyObject<'py>,
impl<'py, T> FromPyObjectBound<'_, 'py> for Twhere
T: FromPyObject<'py>,
Source§impl<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
impl<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
Source§fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>
fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>
self into an owned Python object, dropping type information.