Struct mles_utils::Msg
source · pub struct Msg { /* private fields */ }
Expand description
Msg structure
This structure defines the Mles interface value triplet (uid, channel, message). It is eventually serialized and deserialized by CBOR.
Implementations§
source§impl Msg
impl Msg
sourcepub fn new(uid: String, channel: String, message: Vec<u8>) -> Msg
pub fn new(uid: String, channel: String, message: Vec<u8>) -> Msg
Create a new Msg object with value triplet.
Example
use mles_utils::Msg;
let msg = Msg::new("My uid".to_string(), "My channel".to_string(), Vec::new());
sourcepub fn set_uid(self, uid: String) -> Msg
pub fn set_uid(self, uid: String) -> Msg
Set uid for Msg object.
Example
use mles_utils::Msg;
let mut msg = Msg::new("My uid".to_string(), "My channel".to_string(), Vec::new());
let msg = msg.set_uid("New uid".to_string());
assert_eq!("New uid".to_string(), *msg.get_uid());
sourcepub fn set_channel(self, channel: String) -> Msg
pub fn set_channel(self, channel: String) -> Msg
Set channel for Msg object.
Example
use mles_utils::Msg;
let mut msg = Msg::new("My uid".to_string(), "My channel".to_string(), Vec::new());
let msg = msg.set_channel("New channel".to_string());
assert_eq!("New channel".to_string(), *msg.get_channel());
sourcepub fn set_message(self, message: Vec<u8>) -> Msg
pub fn set_message(self, message: Vec<u8>) -> Msg
Set message for Msg object.
Example
use mles_utils::Msg;
let mut msg = Msg::new("My uid".to_string(), "My channel".to_string(), Vec::new());
let new_message: Vec<u8> = "New message".to_string().into_bytes();
let msg = msg.set_message(new_message);
sourcepub fn get_channel(&self) -> &String
pub fn get_channel(&self) -> &String
Get channel for Msg object. See example for set channel.
sourcepub fn get_message(&self) -> &Vec<u8> ⓘ
pub fn get_message(&self) -> &Vec<u8> ⓘ
Get message for Msg object.
Example
use mles_utils::Msg;
let mut msg = Msg::new("My uid".to_string(), "My channel".to_string(), Vec::new());
let msg: &Vec<u8> = msg.get_message();
sourcepub fn get_message_len(&self) -> usize
pub fn get_message_len(&self) -> usize
Get message len for Msg object.
Example
use mles_utils::Msg;
let mut msg = Msg::new("My uid".to_string(), "My channel".to_string(), Vec::new());
let msg_len: usize = msg.get_message_len();
sourcepub fn get_mut_message(&mut self) -> &mut Vec<u8> ⓘ
pub fn get_mut_message(&mut self) -> &mut Vec<u8> ⓘ
Get mutable message reference for Msg object.
Example
use mles_utils::Msg;
let mut msg = Msg::new("My uid".to_string(), "My channel".to_string(), "My
message".to_string().into_bytes());
let message = msg.get_mut_message();
message.extend_from_slice(&" is mutable".to_string().into_bytes());
sourcepub fn decode(slice: &[u8]) -> Msg
pub fn decode(slice: &[u8]) -> Msg
Decode CBOR byte string to Msg object.
Errors
If message cannot be decoded, a Msg structure with empty items is returned.
Example
use mles_utils::Msg;
let msg = Msg::new("My uid".to_string(), "My channel".to_string(), Vec::new());
let encoded_msg: Vec<u8> = msg.encode();
let decoded_msg: Msg = Msg::decode(&encoded_msg);
Trait Implementations§
source§impl<'de> Deserialize<'de> for Msg
impl<'de> Deserialize<'de> for Msg
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>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl RefUnwindSafe for Msg
impl Send for Msg
impl Sync for Msg
impl Unpin for Msg
impl UnwindSafe for Msg
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
Mutably borrows from an owned value. Read more