NodeDecl

Enum NodeDecl 

Source
pub enum NodeDecl {
    Integer {
Show 17 fields name: String, meta: NodeMeta, addressing: Option<Addressing>, len: u32, access: AccessMode, min: i64, max: i64, inc: Option<i64>, unit: Option<String>, bitfield: Option<BitField>, selectors: Vec<String>, selected_if: Vec<(String, Vec<String>)>, pvalue: Option<String>, p_max: Option<String>, p_min: Option<String>, value: Option<i64>, predicates: PredicateRefs,
}, Float {
Show 15 fields name: String, meta: NodeMeta, addressing: Option<Addressing>, access: AccessMode, min: f64, max: f64, unit: Option<String>, scale: Option<(i64, i64)>, offset: Option<f64>, selectors: Vec<String>, selected_if: Vec<(String, Vec<String>)>, pvalue: Option<String>, encoding: FloatEncoding, byte_order: ByteOrder, predicates: PredicateRefs,
}, Enum { name: String, meta: NodeMeta, addressing: Option<Addressing>, access: AccessMode, entries: Vec<EnumEntryDecl>, default: Option<String>, selectors: Vec<String>, selected_if: Vec<(String, Vec<String>)>, pvalue: Option<String>, predicates: PredicateRefs, }, Boolean { name: String, meta: NodeMeta, addressing: Option<Addressing>, len: u32, access: AccessMode, bitfield: Option<BitField>, selectors: Vec<String>, selected_if: Vec<(String, Vec<String>)>, pvalue: Option<String>, on_value: Option<i64>, off_value: Option<i64>, predicates: PredicateRefs, }, Command { name: String, meta: NodeMeta, address: Option<u64>, len: u32, pvalue: Option<String>, command_value: Option<i64>, predicates: PredicateRefs, }, Category { name: String, meta: NodeMeta, children: Vec<String>, predicates: PredicateRefs, }, SwissKnife(SwissKnifeDecl), Converter(ConverterDecl), IntConverter(IntConverterDecl), String(StringDecl), }
Expand description

Declaration of a node extracted from the GenICam XML description.

Variants§

§

Integer

Integer feature backed by a register block or delegated via pValue.

Fields

§name: String

Feature name.

§meta: NodeMeta

Shared metadata (visibility, description, tooltip, etc.).

§addressing: Option<Addressing>

Addressing metadata (absent when delegated via pvalue).

§len: u32

Length in bytes of the register payload.

§access: AccessMode

Access privileges.

§min: i64

Minimum allowed user value.

§max: i64

Maximum allowed user value.

§inc: Option<i64>

Optional increment step enforced by the device.

§unit: Option<String>

Engineering unit (if provided).

§bitfield: Option<BitField>

Optional bitfield metadata describing the active bit range.

§selectors: Vec<String>

Selector nodes referencing this feature.

§selected_if: Vec<(String, Vec<String>)>

Selector gating rules in the form (selector name, allowed values).

§pvalue: Option<String>

Node providing the value (delegates read/write to another node).

§p_max: Option<String>

Node providing the dynamic maximum.

§p_min: Option<String>

Node providing the dynamic minimum.

§value: Option<i64>

Static value (for constant integer nodes with <Value>).

§predicates: PredicateRefs

Predicate refs gating implementation / availability / lock state.

§

Float

Floating point feature backed by an integer register with scaling, a native IEEE 754 register, or delegated via pValue.

Fields

§name: String
§addressing: Option<Addressing>

Addressing metadata (absent when delegated via pvalue).

§access: AccessMode
§min: f64
§max: f64
§scale: Option<(i64, i64)>

Optional rational scale applied to the raw register value.

§offset: Option<f64>

Optional additive offset applied after scaling.

§selectors: Vec<String>
§selected_if: Vec<(String, Vec<String>)>
§pvalue: Option<String>

Node providing the value (delegates read/write to another node).

§encoding: FloatEncoding

How the register payload should be interpreted — native IEEE 754 or scaled integer. Defaults to FloatEncoding::ScaledInteger to preserve existing behaviour for XML that relied on it.

§byte_order: ByteOrder

Byte order of the register payload. Defaults to ByteOrder::Big (the GenICam default).

§predicates: PredicateRefs

Predicate refs gating implementation / availability / lock state.

§

Enum

Enumeration feature exposing a list of named integer values.

Fields

§name: String
§addressing: Option<Addressing>

Addressing metadata (absent when delegated via pvalue).

§access: AccessMode
§default: Option<String>
§selectors: Vec<String>
§selected_if: Vec<(String, Vec<String>)>
§pvalue: Option<String>

Node providing the integer value (delegates register read/write).

§predicates: PredicateRefs

Predicate refs gating implementation / availability / lock state.

§

Boolean

Boolean feature backed by a single bit/byte register or delegated via pValue.

Fields

§name: String
§addressing: Option<Addressing>

Addressing metadata (absent when delegated via pvalue).

§len: u32
§access: AccessMode
§bitfield: Option<BitField>
§selectors: Vec<String>
§selected_if: Vec<(String, Vec<String>)>
§pvalue: Option<String>

Node providing the value (delegates read/write to another node).

§on_value: Option<i64>

On value for pValue-backed booleans.

§off_value: Option<i64>

Off value for pValue-backed booleans.

§predicates: PredicateRefs

Predicate refs gating implementation / availability / lock state.

§

Command

Command feature that triggers an action when written.

Fields

§name: String
§address: Option<u64>

Fixed register address (absent when delegated via pvalue).

§len: u32
§pvalue: Option<String>

Node providing the command register (delegates write).

§command_value: Option<i64>

Value to write when executing the command.

§predicates: PredicateRefs

Predicate refs gating implementation / availability / lock state.

§

Category

Category used to organise features.

Fields

§name: String
§children: Vec<String>
§predicates: PredicateRefs

Predicate refs gating implementation / availability.

§

SwissKnife(SwissKnifeDecl)

Computed value backed by an arithmetic expression referencing other nodes.

§

Converter(ConverterDecl)

Converter transforming raw values to/from user-facing floating-point values.

§

IntConverter(IntConverterDecl)

IntConverter transforming raw values to/from user-facing integer values.

§

String(StringDecl)

StringReg for string-typed register access.

Trait Implementations§

Source§

impl Clone for NodeDecl

Source§

fn clone(&self) -> NodeDecl

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for NodeDecl

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for NodeDecl

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for NodeDecl

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,