pub struct Continuation<'a> { /* private fields */ }Expand description
The sections of an RFC 2231 continued value, validated at parse.
§Examples
use parse_net::{mail::{self, MimeValue}, Limits};
let (p, _) = mail::parse_mime_params(b"; url*0=\"http://a.example/\"; url*1=\"b\"", &Limits::DEFAULT)?;
let Some(MimeValue::Continued(c)) = p.get("url") else { unreachable!() };
let mut buf = [0u8; 32];
assert_eq!(c.decode_into(&mut buf)?, "http://a.example/b");Implementations§
Source§impl Continuation<'_>
impl Continuation<'_>
Sourcepub fn sections(&self) -> usize
pub fn sections(&self) -> usize
The number of sections.
§Examples
use parse_net::{mail::{self, MimeValue}, Limits};
let (p, _) = mail::parse_mime_params(b"; n*0=a; n*1=b; n*2=c", &Limits::DEFAULT)?;
let Some(MimeValue::Continued(c)) = p.get("n") else { unreachable!() };
assert_eq!(c.sections(), 3);Sourcepub fn max_decoded_len(&self) -> usize
pub fn max_decoded_len(&self) -> usize
An upper bound on the decoded length (twice the raw length, for ISO-8859-1 transcoded to UTF-8).
§Examples
use parse_net::{mail::{self, MimeValue}, Limits};
let (p, _) = mail::parse_mime_params(b"; t*0=abc; t*1=de", &Limits::DEFAULT)?;
let Some(MimeValue::Continued(c)) = p.get("t") else { unreachable!() };
assert_eq!(c.max_decoded_len(), 10);
let mut buf = [0u8; 10];
assert_eq!(c.decode_into(&mut buf)?, "abcde");Sourcepub fn decode_into<'b>(&self, out: &'b mut [u8]) -> Result<&'b str, ParseError>
pub fn decode_into<'b>(&self, out: &'b mut [u8]) -> Result<&'b str, ParseError>
Decodes the sections in order into out: %XX in extended sections,
the charset of section 0 (UTF-8 or ISO-8859-1, transcoded).
§Errors
ErrorKind::BufferTooSmall; nothing is written on error.
§Examples
use parse_net::{mail::{self, MimeValue}, Limits};
let (p, _) = mail::parse_mime_params(b"; title*0*=iso-8859-1'en'%A3; title*1=\" rates\"", &Limits::DEFAULT)?;
let Some(MimeValue::Continued(c)) = p.get("title") else { unreachable!() };
let mut buf = [0u8; 16];
assert_eq!((c.sections(), c.decode_into(&mut buf)?), (2, "\u{a3} rates"));Trait Implementations§
Source§impl<'a> Clone for Continuation<'a>
impl<'a> Clone for Continuation<'a>
impl<'a> Copy for Continuation<'a>
Source§impl<'a> Debug for Continuation<'a>
impl<'a> Debug for Continuation<'a>
impl<'a> Eq for Continuation<'a>
Source§impl<'a> Hash for Continuation<'a>
impl<'a> Hash for Continuation<'a>
Source§impl<'a> PartialEq for Continuation<'a>
impl<'a> PartialEq for Continuation<'a>
impl<'a> StructuralPartialEq for Continuation<'a>
Auto Trait Implementations§
impl<'a> Freeze for Continuation<'a>
impl<'a> RefUnwindSafe for Continuation<'a>
impl<'a> Send for Continuation<'a>
impl<'a> Sync for Continuation<'a>
impl<'a> Unpin for Continuation<'a>
impl<'a> UnsafeUnpin for Continuation<'a>
impl<'a> UnwindSafe for Continuation<'a>
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