pub struct AttributeMessage {
pub name: String,
pub datatype: DatatypeMessage,
pub dataspace: DataspaceMessage,
pub data: Vec<u8>,
}Expand description
An HDF5 attribute message.
Fields§
§name: StringAttribute name.
datatype: DatatypeMessageDatatype of the attribute value.
dataspace: DataspaceMessageDataspace (scalar or simple).
data: Vec<u8>Raw attribute value data.
Implementations§
Source§impl AttributeMessage
impl AttributeMessage
Sourcepub fn scalar_string(name: &str, value: &str) -> Self
pub fn scalar_string(name: &str, value: &str) -> Self
Create a scalar string attribute with the given name and value.
Uses a null-terminated UTF-8 fixed-length string datatype with size = value.len() + 1 (for the null terminator), and a scalar dataspace.
Sourcepub fn scalar_numeric(
name: &str,
datatype: DatatypeMessage,
data: Vec<u8>,
) -> Self
pub fn scalar_numeric( name: &str, datatype: DatatypeMessage, data: Vec<u8>, ) -> Self
Create a scalar numeric attribute with raw bytes as value.
Sourcepub fn array_numeric(
name: &str,
datatype: DatatypeMessage,
dims: &[u64],
data: Vec<u8>,
) -> Self
pub fn array_numeric( name: &str, datatype: DatatypeMessage, dims: &[u64], data: Vec<u8>, ) -> Self
Create a numeric array attribute with a simple dataspace.
dims are the dimension sizes (e.g. &[3] for the 1-D array
attributes AreaDetector writes). data is the row-major raw bytes and
must hold product(dims) * datatype.element_size() bytes — the caller
owns that invariant. An empty dims yields a scalar dataspace; prefer
Self::scalar_numeric for that case.
Sourcepub fn encode(&self, ctx: &FormatContext) -> Vec<u8> ⓘ
pub fn encode(&self, ctx: &FormatContext) -> Vec<u8> ⓘ
Encode the attribute message into a byte vector.
The result is the raw payload for an object header message of type 0x0C (MSG_ATTRIBUTE). It does NOT include the object header message envelope (type, size, flags bytes); that is handled by the caller.
Sourcepub fn decode(buf: &[u8], ctx: &FormatContext) -> FormatResult<(Self, usize)>
pub fn decode(buf: &[u8], ctx: &FormatContext) -> FormatResult<(Self, usize)>
Decode an attribute message from a byte buffer.
Supports versions 1, 2, and 3:
- v1: 8-byte header, each field padded to 8-byte alignment
- v2: 8-byte header, no alignment padding
- v3: 9-byte header (adds charset byte), no alignment padding
Trait Implementations§
Source§impl Clone for AttributeMessage
impl Clone for AttributeMessage
Source§fn clone(&self) -> AttributeMessage
fn clone(&self) -> AttributeMessage
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for AttributeMessage
impl Debug for AttributeMessage
Source§impl PartialEq for AttributeMessage
impl PartialEq for AttributeMessage
Source§fn eq(&self, other: &AttributeMessage) -> bool
fn eq(&self, other: &AttributeMessage) -> bool
self and other values to be equal, and is used by ==.