Address

Struct Address 

Source
pub struct Address {
    pub high: u8,
    pub mid: u8,
    pub low: u8,
}
Expand description

SysEx address (3 bytes)

Fields§

§high: u8

High byte

§mid: u8

Mid byte

§low: u8

Low byte

Implementations§

Source§

impl Address

Source

pub fn new(high: u8, mid: u8, low: u8) -> Self

Create a new address from three bytes

Source

pub fn from_hex(hex: &str) -> Result<Self, RolandError>

Create an address from a hex string (6 hex digits)

§Example
use roland_core::Address;
let addr = Address::from_hex("123456").unwrap();
assert_eq!(addr.high, 0x12);
assert_eq!(addr.mid, 0x34);
assert_eq!(addr.low, 0x56);
Examples found in repository?
examples/telnet_client.rs (line 141)
140    pub fn write_parameter(&mut self, address: &str, value: u8) -> Result<(), TelnetError> {
141        let addr = Address::from_hex(address)?;
142        let cmd = Command::WriteParameter {
143            address: addr,
144            value,
145        };
146        let response = self.send_command(&cmd)?;
147
148        match response {
149            Response::Acknowledge => Ok(()),
150            Response::Error(e) => Err(TelnetError::Protocol(e)),
151            _ => Err(TelnetError::Protocol(RolandError::InvalidResponse)),
152        }
153    }
154
155    /// Read a parameter value
156    ///
157    /// # Arguments
158    /// * `address` - SysEx address (3 bytes as hex string, e.g., "123456")
159    /// * `size` - Size to read (typically 1 for single byte)
160    ///
161    /// # Returns
162    /// * `Result<u8, TelnetError>` - Parameter value or error
163    pub fn read_parameter(&mut self, address: &str, size: u32) -> Result<u8, TelnetError> {
164        let addr = Address::from_hex(address)?;
165        let cmd = Command::ReadParameter {
166            address: addr,
167            size,
168        };
169        let response = self.send_command(&cmd)?;
170
171        match response {
172            Response::Data { value, .. } => Ok(value),
173            Response::Error(e) => Err(TelnetError::Protocol(e)),
174            _ => Err(TelnetError::Protocol(RolandError::InvalidResponse)),
175        }
176    }
Source

pub fn to_hex(&self) -> String

Convert address to hex string (6 hex digits, uppercase)

Requires alloc for String allocation.

Source

pub fn write_hex<W: Write>(&self, w: &mut W) -> Result

Write address as hex to a formatter

This method doesn’t require alloc and can be used in no_std environments without heap allocation.

Trait Implementations§

Source§

impl Clone for Address

Source§

fn clone(&self) -> Address

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 Address

Source§

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

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

impl Hash for Address

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for Address

Source§

fn eq(&self, other: &Address) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for Address

Source§

impl Eq for Address

Source§

impl StructuralPartialEq for Address

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.

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.