pub struct Request<'headers, 'buf: 'headers> {
pub method: Option<&'buf str>,
pub path: Option<&'buf str>,
pub version: Option<SipVersion>,
pub headers: &'headers mut [Header<'buf>],
}
Expand description
A parsed Request.
The optional values will be None
if a parse was not complete, and did not
parse the associated property. This allows you to inspect the parts that
could be parsed, before reading more, in case you wish to exit early.
§Example
let buf = b"INVITE sip:callee@domain.com SIP/2.0\r\nHost:";
let mut headers = [parsip::EMPTY_HEADER; 16];
let mut req = parsip::Request::new(&mut headers);
let res = req.parse(buf);
if let parsip::IResult::Incomplete(_) = res {
match req.path {
Some(ref path) => {
// check router for path.
// is domain.com unreachable? we could stop parsing
},
None => {
// must read more and parse again
}
}
}
Fields§
§method: Option<&'buf str>
The request method, such as INVITE
.
path: Option<&'buf str>
The request path, such as sip:callee@domain.com
.
version: Option<SipVersion>
The request version, such as SIP/2.0
.
headers: &'headers mut [Header<'buf>]
The request headers.
Implementations§
Trait Implementations§
impl<'headers, 'buf: 'headers> StructuralPartialEq for Request<'headers, 'buf>
Auto Trait Implementations§
impl<'headers, 'buf> Freeze for Request<'headers, 'buf>
impl<'headers, 'buf> RefUnwindSafe for Request<'headers, 'buf>
impl<'headers, 'buf> Send for Request<'headers, 'buf>
impl<'headers, 'buf> Sync for Request<'headers, 'buf>
impl<'headers, 'buf> Unpin for Request<'headers, 'buf>
impl<'headers, 'buf> !UnwindSafe for Request<'headers, 'buf>
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