#[non_exhaustive]pub enum DuplicatePolicy {
Refuse,
First,
Last,
}Expand description
What a parameter parser does when a name repeats.
Names compare ASCII case-insensitively. Refuse, the
default, fails with ErrorKind::DuplicateParameter
at the repeated name: a field one component reads first-wins and another
last-wins is a known attack. First and
Last exist for fields whose RFC states the rule.
Structured Fields always use last-wins, as RFC 9651 requires.
§Examples
use parse_net::{param, DuplicatePolicy, Limits};
let limits = Limits::DEFAULT.duplicate_params(DuplicatePolicy::Last);
let (p, _) = param::parse(b";a=1;a=2", &limits)?;
assert!(p.get("a").is_some_and(|v| v.eq_bytes(b"2")));Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Refuse
Refuse a repeated name.
First
Keep the first occurrence for lookups.
Last
Keep the last occurrence for lookups.
Trait Implementations§
Source§impl Clone for DuplicatePolicy
impl Clone for DuplicatePolicy
impl Copy for DuplicatePolicy
Source§impl Debug for DuplicatePolicy
impl Debug for DuplicatePolicy
Source§impl Default for DuplicatePolicy
impl Default for DuplicatePolicy
impl Eq for DuplicatePolicy
Source§impl Hash for DuplicatePolicy
impl Hash for DuplicatePolicy
Source§impl PartialEq for DuplicatePolicy
impl PartialEq for DuplicatePolicy
impl StructuralPartialEq for DuplicatePolicy
Auto Trait Implementations§
impl Freeze for DuplicatePolicy
impl RefUnwindSafe for DuplicatePolicy
impl Send for DuplicatePolicy
impl Sync for DuplicatePolicy
impl Unpin for DuplicatePolicy
impl UnsafeUnpin for DuplicatePolicy
impl UnwindSafe for DuplicatePolicy
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