pub struct PointMeta {Show 14 fields
pub point_id: i32,
pub channel_id: i32,
pub channel_name: Arc<str>,
pub device_id: i32,
pub device_name: Arc<str>,
pub point_name: Arc<str>,
pub point_key: Arc<str>,
pub data_type: DataType,
pub access_mode: AccessMode,
pub unit: Option<Arc<str>>,
pub min_value: Option<f64>,
pub max_value: Option<f64>,
pub transform: Transform,
pub description: Option<Arc<str>>,
}Expand description
Northward envelope protocol types (re-exported at crate root). Point metadata snapshot for northward consumption.
This struct is intended to be:
- Read-only for plugins
- Cheap to clone via
Arc<PointMeta> - Stable across core internal refactors
All strings are stored as Arc<str> to reduce cloning cost.
Fields§
§point_id: i32Point identifier (primary key).
channel_id: i32Channel identifier.
channel_name: Arc<str>Channel name.
device_id: i32Device identifier.
device_name: Arc<str>Device name.
point_name: Arc<str>Point display name.
point_key: Arc<str>Point key used for protocol encoding and UI display.
data_type: DataTypeStrong data type definition for this point.
access_mode: AccessModeAccess mode for read/write validation.
unit: Option<Arc<str>>Unit of measurement (optional).
min_value: Option<f64>Minimum allowed engineering value (optional).
max_value: Option<f64>Maximum allowed engineering value (optional).
transform: TransformLogical-layer transform rules for this point.
This is always present; identity semantics are defined by Transform.
description: Option<Arc<str>>Human-readable description (optional).
Implementations§
Source§impl PointMeta
impl PointMeta
Sourcepub fn wire_data_type(&self) -> DataType
pub fn wire_data_type(&self) -> DataType
Get the wire data type (protocol-level, memory-layout semantics).
For PointMeta, this is the configured data_type persisted in the gateway.
Sourcepub fn logical_data_type(&self) -> DataType
pub fn logical_data_type(&self) -> DataType
Get the logical data type (northward-facing semantics).
This is derived from transform.transform_data_type and falls back to the
wire data type when not configured.
pub fn readable(&self) -> bool
pub fn writable(&self) -> bool
Trait Implementations§
Source§impl<'de> Deserialize<'de> for PointMeta
impl<'de> Deserialize<'de> for PointMeta
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>,
Auto Trait Implementations§
impl Freeze for PointMeta
impl RefUnwindSafe for PointMeta
impl Send for PointMeta
impl Sync for PointMeta
impl Unpin for PointMeta
impl UnwindSafe for PointMeta
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.