pub struct ContentDisposition<'a> { /* private fields */ }Expand description
A validated Content-Disposition value.
§Examples
let cd = parse_net::parse_content_disposition(b"attachment; filename=report.pdf")?;
assert_eq!(cd.kind(), parse_net::DispositionType::Attachment);
assert!(cd.filename_plain().is_some_and(|f| f.eq_bytes(b"report.pdf")));Implementations§
Source§impl<'a> ContentDisposition<'a>
impl<'a> ContentDisposition<'a>
Sourcepub const fn kind(&self) -> DispositionType<'a>
pub const fn kind(&self) -> DispositionType<'a>
The disposition type.
§Examples
use parse_net::{parse_content_disposition, DispositionType};
let cd = parse_content_disposition(b"Form-Data; name=field")?;
assert_eq!(cd.kind(), DispositionType::FormData);Sourcepub const fn params(&self) -> Params<'a>
pub const fn params(&self) -> Params<'a>
Every parameter.
§Examples
let cd = parse_net::parse_content_disposition(b"inline; size=120; x=\"y\"")?;
assert_eq!(cd.params().len(), 2);
assert!(cd.params().get("size").is_some_and(|v| v.eq_bytes(b"120")));Sourcepub fn name(&self) -> Option<Word<'a>>
pub fn name(&self) -> Option<Word<'a>>
The name parameter (the field name of a form-data part).
§Examples
use parse_net::parse_content_disposition;
let part = parse_content_disposition(b"form-data; name=\"comment\"")?;
assert!(part.name().is_some_and(|n| n.eq_bytes(b"comment")));
assert!(parse_content_disposition(b"attachment")?.name().is_none());Sourcepub fn filename(&self) -> Option<Filename<'a>>
pub fn filename(&self) -> Option<Filename<'a>>
The file name: filename* when present, else filename (RFC 6266
section 4.3).
§Examples
let cd = parse_net::parse_content_disposition(b"attachment; filename=plain.txt; filename*=UTF-8''ext.txt")?;
let mut buf = [0u8; 16];
assert_eq!(cd.filename().expect("present").decode_into(&mut buf)?, "ext.txt");Sourcepub fn filename_plain(&self) -> Option<Word<'a>>
pub fn filename_plain(&self) -> Option<Word<'a>>
The filename parameter as sent.
§Examples
let cd = parse_net::parse_content_disposition(b"attachment; filename=plain.txt; filename*=UTF-8''ext.txt")?;
assert!(cd.filename_plain().is_some_and(|f| f.eq_bytes(b"plain.txt")));Sourcepub fn filename_ext(&self) -> Option<ExtValue<'a>>
pub fn filename_ext(&self) -> Option<ExtValue<'a>>
The filename* parameter, decoded as an RFC 8187 value.
§Examples
let cd = parse_net::parse_content_disposition(b"attachment; filename=plain.txt; filename*=UTF-8''ext.txt")?;
let ext = cd.filename_ext().expect("present");
assert_eq!((ext.charset(), ext.encoded()), (parse_net::Charset::Utf8, &b"ext.txt"[..]));Trait Implementations§
Source§impl<'a> Clone for ContentDisposition<'a>
impl<'a> Clone for ContentDisposition<'a>
impl<'a> Copy for ContentDisposition<'a>
Source§impl<'a> Debug for ContentDisposition<'a>
impl<'a> Debug for ContentDisposition<'a>
impl<'a> Eq for ContentDisposition<'a>
Source§impl<'a> Hash for ContentDisposition<'a>
impl<'a> Hash for ContentDisposition<'a>
Source§impl<'a> PartialEq for ContentDisposition<'a>
impl<'a> PartialEq for ContentDisposition<'a>
impl<'a> StructuralPartialEq for ContentDisposition<'a>
Auto Trait Implementations§
impl<'a> Freeze for ContentDisposition<'a>
impl<'a> RefUnwindSafe for ContentDisposition<'a>
impl<'a> Send for ContentDisposition<'a>
impl<'a> Sync for ContentDisposition<'a>
impl<'a> Unpin for ContentDisposition<'a>
impl<'a> UnsafeUnpin for ContentDisposition<'a>
impl<'a> UnwindSafe for ContentDisposition<'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