1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// Released under the MIT License.
// Copyright, 2026, by Samuel Williams.
use MediaType;
/// The rules for a `Content-Disposition` field's extended parameters, such as `filename*`, when reading its name or filename. Forms and other MIME parts follow different RFCs, so a disposition does not choose for you.
///
/// ```
/// use base_web_multipart::{ContentDisposition, ParameterRules};
/// use base_web_media_type::MediaType;
/// use base_message::FieldType;
///
/// let disposition = ContentDisposition::parse(b"attachment; filename=\"EURO rates\"; filename*=utf-8''%e2%82%ac%20rates")?;
/// assert_eq!(disposition.filename(ParameterRules::Mime)?.as_deref(), Some("€ rates"));
/// assert!(disposition.filename(ParameterRules::FormData).is_err());
///
/// let rules = ParameterRules::for_media_type(&MediaType::parse("multipart/form-data; boundary=x")?);
/// assert_eq!(rules, ParameterRules::FormData);
/// # Ok::<(), Box<dyn std::error::Error>>(())
/// ```