pub struct ExtendedMultiplexingBuilder { /* private fields */ }Expand description
Builder for creating ExtendedMultiplexing programmatically.
This builder allows you to construct extended multiplexing entries when building DBC files programmatically. Extended multiplexing (SG_MUL_VAL_) entries define which multiplexer switch values activate specific multiplexed signals.
§Examples
use dbc_rs::ExtendedMultiplexingBuilder;
// Build an extended multiplexing entry
let ext_mux = ExtendedMultiplexingBuilder::new()
.message_id(500)
.signal_name("Signal_A")
.multiplexer_switch("Mux1")
.add_value_range(0, 5)
.add_value_range(10, 15)
.build()?;
assert_eq!(ext_mux.message_id(), 500);
assert_eq!(ext_mux.signal_name(), "Signal_A");
assert_eq!(ext_mux.multiplexer_switch(), "Mux1");§Feature Requirements
This builder requires the std feature to be enabled.
Implementations§
Source§impl ExtendedMultiplexingBuilder
impl ExtendedMultiplexingBuilder
Sourcepub fn new() -> Self
pub fn new() -> Self
Creates a new ExtendedMultiplexingBuilder with no fields set.
§Examples
use dbc_rs::ExtendedMultiplexingBuilder;
let builder = ExtendedMultiplexingBuilder::new();
// Must set message_id, signal_name, multiplexer_switch, and at least one value range before buildingSourcepub fn message_id(self, message_id: u32) -> Self
pub fn message_id(self, message_id: u32) -> Self
Sourcepub fn signal_name(self, signal_name: impl AsRef<str>) -> Self
pub fn signal_name(self, signal_name: impl AsRef<str>) -> Self
Sourcepub fn multiplexer_switch(self, multiplexer_switch: impl AsRef<str>) -> Self
pub fn multiplexer_switch(self, multiplexer_switch: impl AsRef<str>) -> Self
Sourcepub fn add_value_range(self, min: u64, max: u64) -> Self
pub fn add_value_range(self, min: u64, max: u64) -> Self
Adds a value range to the extended multiplexing entry.
§Arguments
min- The minimum switch value (inclusive)max- The maximum switch value (inclusive)
§Examples
use dbc_rs::ExtendedMultiplexingBuilder;
let builder = ExtendedMultiplexingBuilder::new()
.add_value_range(0, 5)
.add_value_range(10, 15);Sourcepub fn build(self) -> Result<ExtendedMultiplexing>
pub fn build(self) -> Result<ExtendedMultiplexing>
Builds the ExtendedMultiplexing from the builder configuration.
This validates that all required fields have been set and constructs an
ExtendedMultiplexing instance.
§Returns
Returns Ok(ExtendedMultiplexing) if successful, or Err(Error) if:
- message_id is not set
- signal_name is not set or invalid
- multiplexer_switch is not set or invalid
- No value ranges have been added
- Any name exceeds MAX_NAME_SIZE
§Examples
use dbc_rs::ExtendedMultiplexingBuilder;
let ext_mux = ExtendedMultiplexingBuilder::new()
.message_id(500)
.signal_name("Signal_A")
.multiplexer_switch("Mux1")
.add_value_range(0, 5)
.build()?;§Errors
use dbc_rs::ExtendedMultiplexingBuilder;
// Missing message_id
let result = ExtendedMultiplexingBuilder::new()
.signal_name("Signal_A")
.multiplexer_switch("Mux1")
.add_value_range(0, 5)
.build();
assert!(result.is_err());
// Missing value ranges
let result = ExtendedMultiplexingBuilder::new()
.message_id(500)
.signal_name("Signal_A")
.multiplexer_switch("Mux1")
.build();
assert!(result.is_err());Trait Implementations§
Source§impl Clone for ExtendedMultiplexingBuilder
impl Clone for ExtendedMultiplexingBuilder
Source§fn clone(&self) -> ExtendedMultiplexingBuilder
fn clone(&self) -> ExtendedMultiplexingBuilder
Returns a duplicate of the value. Read more
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ExtendedMultiplexingBuilder
impl Debug for ExtendedMultiplexingBuilder
Auto Trait Implementations§
impl Freeze for ExtendedMultiplexingBuilder
impl RefUnwindSafe for ExtendedMultiplexingBuilder
impl Send for ExtendedMultiplexingBuilder
impl Sync for ExtendedMultiplexingBuilder
impl Unpin for ExtendedMultiplexingBuilder
impl UnwindSafe for ExtendedMultiplexingBuilder
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
🔬This is a nightly-only experimental API. (
clone_to_uninit)