pub struct DataType { /* private fields */ }Expand description
Represents a data type including metadata.
Implementations§
Source§impl DataType
impl DataType
Sourcepub fn new(
type_name: &str,
metadata: Option<Params>,
identifier: Option<String>,
) -> Self
pub fn new( type_name: &str, metadata: Option<Params>, identifier: Option<String>, ) -> Self
Creates a new DataType instance.
Sourcepub fn from_parts(
type_name: &str,
topic: &str,
metadata: Option<Params>,
) -> Self
pub fn from_parts( type_name: &str, topic: &str, metadata: Option<Params>, ) -> Self
Creates a DataType from persisted parts (type_name, topic, metadata).
Hash is recomputed from topic. Use when restoring from legacy data_type column.
Identifier is set to None.
Sourcepub fn to_persistence_json(&self) -> Result<String, Error>
pub fn to_persistence_json(&self) -> Result<String, Error>
Serializes to JSON for persistence (type_name, metadata, identifier; no topic, no hash).
§Errors
Returns a JSON serialization error if the data cannot be serialized.
Sourcepub fn from_persistence_json(s: &str) -> Result<Self, Error>
pub fn from_persistence_json(s: &str) -> Result<Self, Error>
Deserializes from JSON produced by to_persistence_json.
Accepts legacy JSON with topic (ignored); topic is rebuilt from type_name + metadata.
§Errors
Returns an error if the string is not valid JSON or missing required fields.
Sourcepub fn metadata_str(&self) -> String
pub fn metadata_str(&self) -> String
Returns a string representation of the metadata.
Sourcepub fn metadata_string_map(&self) -> Option<HashMap<String, String>>
pub fn metadata_string_map(&self) -> Option<HashMap<String, String>>
Returns metadata as a string-only map (e.g. for Arrow schema metadata).
Sourcepub fn precomputed_hash(&self) -> u64
pub fn precomputed_hash(&self) -> u64
Returns the precomputed hash for this data type.
Sourcepub fn identifier(&self) -> Option<&str>
pub fn identifier(&self) -> Option<&str>
Returns the optional catalog path identifier (can contain subdirs, e.g. "venue//symbol").
Sourcepub fn instrument_id(&self) -> Option<InstrumentId>
pub fn instrument_id(&self) -> Option<InstrumentId>
Returns an Option<InstrumentId> parsed from the metadata.
§Panics
This function panics if:
- There is no metadata.
- The
instrument_idvalue contained in the metadata is invalid.
Sourcepub fn venue(&self) -> Option<Venue>
pub fn venue(&self) -> Option<Venue>
Returns an Option<Venue> parsed from the metadata.
§Panics
This function panics if:
- There is no metadata.
- The
venuevalue contained in the metadata is invalid.
Sourcepub fn start(&self) -> Option<UnixNanos>
pub fn start(&self) -> Option<UnixNanos>
Returns an Option<UnixNanos> parsed from the metadata start field.
§Panics
This function panics if:
- There is no metadata.
- The
startvalue contained in the metadata is invalid.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for DataType
impl<'de> Deserialize<'de> for DataType
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<'a, 'py> FromPyObject<'a, 'py> for DataTypewhere
Self: Clone,
impl<'a, 'py> FromPyObject<'a, 'py> for DataTypewhere
Self: Clone,
Source§impl<'py> IntoPyObject<'py> for DataType
impl<'py> IntoPyObject<'py> for DataType
Source§type Output = Bound<'py, <DataType as IntoPyObject<'py>>::Target>
type Output = Bound<'py, <DataType 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 Ord for DataType
impl Ord for DataType
Source§impl PartialOrd for DataType
impl PartialOrd for DataType
Source§impl PyClassImpl for DataType
impl PyClassImpl for DataType
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§const IS_IMMUTABLE_TYPE: bool = false
const IS_IMMUTABLE_TYPE: bool = false
Source§const RAW_DOC: &'static CStr = /// Represents a data type including metadata.
const RAW_DOC: &'static CStr = /// Represents a data type including metadata.
Source§const DOC: &'static CStr
const DOC: &'static CStr
text_signature if a constructor is defined. Read moreSource§type Layout = <<DataType as PyClassImpl>::BaseNativeType as PyClassBaseType>::Layout<DataType>
type Layout = <<DataType as PyClassImpl>::BaseNativeType as PyClassBaseType>::Layout<DataType>
Source§type ThreadChecker = NoopThreadChecker
type ThreadChecker = NoopThreadChecker
type Inventory = Pyo3MethodsInventoryForDataType
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 lazy_type_object() -> &'static LazyTypeObject<Self>
Source§fn dict_offset() -> Option<PyObjectOffset>
fn dict_offset() -> Option<PyObjectOffset>
Source§fn weaklist_offset() -> Option<PyObjectOffset>
fn weaklist_offset() -> Option<PyObjectOffset>
Source§impl PyClassNewTextSignature for DataType
impl PyClassNewTextSignature for DataType
const TEXT_SIGNATURE: &'static str = "(type_name, metadata=None, identifier=None)"
Source§impl PyStubType for DataType
impl PyStubType for DataType
Source§fn type_output() -> TypeInfo
fn type_output() -> TypeInfo
Source§fn type_input() -> TypeInfo
fn type_input() -> TypeInfo
Source§impl PyTypeInfo for DataType
impl PyTypeInfo for DataType
Source§const NAME: &str = <Self as ::pyo3::PyClass>::NAME
const NAME: &str = <Self as ::pyo3::PyClass>::NAME
prefer using ::type_object(py).name() to get the correct runtime value
Source§const MODULE: Option<&str> = <Self as ::pyo3::impl_::pyclass::PyClassImpl>::MODULE
const MODULE: Option<&str> = <Self as ::pyo3::impl_::pyclass::PyClassImpl>::MODULE
prefer using ::type_object(py).module() to get the correct runtime value
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>
impl DerefToPyAny for DataType
impl Eq for DataType
Auto Trait Implementations§
impl Freeze for DataType
impl RefUnwindSafe for DataType
impl Send for DataType
impl Sync for DataType
impl Unpin for DataType
impl UnsafeUnpin for DataType
impl UnwindSafe for DataType
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<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§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.Source§impl<'py, T> IntoPyObjectNautilusExt<'py> for Twhere
T: IntoPyObjectExt<'py>,
impl<'py, T> IntoPyObjectNautilusExt<'py> for Twhere
T: IntoPyObjectExt<'py>,
Source§impl<T> PyErrArguments for T
impl<T> PyErrArguments for T
Source§impl<T> PyTypeCheck for Twhere
T: PyTypeInfo,
impl<T> PyTypeCheck for Twhere
T: PyTypeInfo,
Source§const NAME: &'static str = T::NAME
const NAME: &'static str = T::NAME
Use ::classinfo_object() instead and format the type name at runtime. Note that using built-in cast features is often better than manual PyTypeCheck usage.