pub struct Message { /* private fields */ }
Expand description
Error returned when there is no A mobile-origined Iridium SBD message.
Message
s can be ordered by time of session.
Implementations§
source§impl Message
impl Message
sourcepub fn from_path<P: AsRef<Path>>(path: P) -> Result<Message, Error>
pub fn from_path<P: AsRef<Path>>(path: P) -> Result<Message, Error>
Reads in a message from a file path.
Examples
use sbd::mo::Message;
let message = Message::from_path("data/0-mo.sbd").unwrap();
sourcepub fn read_from<R: Read>(read: R) -> Result<Message, Error>
pub fn read_from<R: Read>(read: R) -> Result<Message, Error>
Reads in a message from an object that implements Read
.
Per the specification, oversized and undersized messages will result in an error.
Examples
use std::fs::File;
use sbd::mo::Message;
let mut file = File::open("data/0-mo.sbd").unwrap();
let message = Message::read_from(file).unwrap();
sourcepub fn new<I: IntoIterator<Item = InformationElement>>(
iter: I
) -> Result<Message, Error>
pub fn new<I: IntoIterator<Item = InformationElement>>( iter: I ) -> Result<Message, Error>
Creates a new message from information elements.
Examples
extern crate chrono;
use chrono::{Utc, TimeZone};
use sbd::mo::{InformationElement, Header, SessionStatus, Message};
let header = InformationElement::Header(Header {
auto_id: 1,
imei: [0; 15],
session_status: SessionStatus::Ok,
momsn: 1,
mtmsn: 0,
time_of_session: Utc.ymd(2017, 10, 1).and_hms(0, 0, 0),
});
let payload = InformationElement::Payload(Vec::new());
let message = Message::new(vec![header, payload]);
sourcepub fn auto_id(&self) -> u32
pub fn auto_id(&self) -> u32
Returns this message’s auto id.
Examples
use sbd::mo::Message;
let message = Message::from_path("data/0-mo.sbd").unwrap();
let auto_id = message.auto_id();
sourcepub fn session_status(&self) -> SessionStatus
pub fn session_status(&self) -> SessionStatus
Returns this message’s session status.
Examples
use sbd::mo::Message;
let message = Message::from_path("data/0-mo.sbd").unwrap();
let session_status = message.session_status();
sourcepub fn momsn(&self) -> u16
pub fn momsn(&self) -> u16
Returns this message’s mobile originated message sequence number.
Examples
use sbd::mo::Message;
let message = Message::from_path("data/0-mo.sbd").unwrap();
let momsn = message.momsn();
sourcepub fn mtmsn(&self) -> u16
pub fn mtmsn(&self) -> u16
Returns this message’s mobile terminated message sequence number.
Examples
use sbd::mo::Message;
let message = Message::from_path("data/0-mo.sbd").unwrap();
let mtmsn = message.mtmsn();
sourcepub fn time_of_session(&self) -> DateTime<Utc>
pub fn time_of_session(&self) -> DateTime<Utc>
Returns this message’s time of session.
Examples
use sbd::mo::Message;
let message = Message::from_path("data/0-mo.sbd").unwrap();
let time_of_session = message.time_of_session();
sourcepub fn payload(&self) -> &Vec<u8>
pub fn payload(&self) -> &Vec<u8>
Returns this message’s payload.
Examples
use sbd::mo::Message;
let message = Message::from_path("data/0-mo.sbd").unwrap();
let payload = message.payload();
sourcepub fn write_to<W: Write>(&self, write: W) -> Result<(), Error>
pub fn write_to<W: Write>(&self, write: W) -> Result<(), Error>
Write this message back to a object that can Write
.
Examples
use std::io::Cursor;
use sbd::mo::Message;
let message = Message::from_path("data/0-mo.sbd").unwrap();
let mut cursor = Cursor::new(Vec::new());
message.write_to(&mut cursor);
Trait Implementations§
source§impl Ord for Message
impl Ord for Message
source§impl PartialEq<Message> for Message
impl PartialEq<Message> for Message
source§impl PartialOrd<Message> for Message
impl PartialOrd<Message> for Message
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self
and other
) and is used by the <=
operator. Read moreimpl Eq for Message
impl StructuralEq for Message
impl StructuralPartialEq for Message
Auto Trait Implementations§
impl RefUnwindSafe for Message
impl Send for Message
impl Sync for Message
impl Unpin for Message
impl UnwindSafe for Message
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