pub enum HeaderFieldError {
EmptyFieldName,
UppercaseFieldName {
name: Vec<u8>,
},
InvalidFieldNameByte {
name: Vec<u8>,
byte: u8,
},
InvalidFieldValueByte {
name: Vec<u8>,
byte: u8,
},
FieldValueLeadingOrTrailingWhitespace {
name: Vec<u8>,
},
UnknownPseudoHeader {
name: Vec<u8>,
},
InvalidPseudoHeaderValue {
name: Vec<u8>,
value: Vec<u8>,
},
}Expand description
HPACK ヘッダーフィールド構築時検査エラー
RFC 9113 §8.2 / §8.3 および RFC 9110 §5 で定義される field-name / field-value / 疑似ヘッダーの構文制約を、構築点で検出した結果を表現する。
Vec<u8> フィールドを持つため Copy は導出不可能。
Variants§
EmptyFieldName
field-name が空
RFC 9110 §5.1, §5.6.2: token = 1*tchar
UppercaseFieldName
field-name に lowercase 以外の ASCII 英字が含まれる
RFC 9113 §8.2.1: MUST NOT contain 0x41-0x5a (uppercase ASCII)
InvalidFieldNameByte
field-name に token 文字以外が含まれる
RFC 9110 §5.1, §5.6.2 / RFC 9113 §8.2.1
InvalidFieldValueByte
field-value に NUL/CR/LF が含まれる
RFC 9113 §8.2.1: MUST NOT contain 0x00, 0x0a, 0x0d
FieldValueLeadingOrTrailingWhitespace
field-value が先頭または末尾に SP/HTAB を含む
RFC 9113 §8.2.1: MUST NOT start or end with 0x20 (SP) or 0x09 (HTAB)
UnknownPseudoHeader
疑似ヘッダー名が未定義 (:foo のような不明な疑似ヘッダー)
RFC 9113 §8.3 / RFC 8441 §4: 定義済み疑似ヘッダーのみ許可
InvalidPseudoHeaderValue
疑似ヘッダー値が構文違反
各疑似ヘッダーの構文根拠:
:method: RFC 9110 §9.1 (token):scheme: RFC 3986 §3.1 (scheme):path: RFC 9113 §8.3.1, RFC 9110 §4.1 (absolute-path):status: RFC 9112 §4, RFC 9110 §15 (3DIGIT):protocol: RFC 8441 §4 (HTTP Upgrade Token):authority: RFC 3986 §3.2 (authority)
Trait Implementations§
Source§impl Clone for HeaderFieldError
impl Clone for HeaderFieldError
Source§fn clone(&self) -> HeaderFieldError
fn clone(&self) -> HeaderFieldError
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for HeaderFieldError
impl Debug for HeaderFieldError
Source§impl Display for HeaderFieldError
impl Display for HeaderFieldError
impl Eq for HeaderFieldError
Source§impl Error for HeaderFieldError
impl Error for HeaderFieldError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0:
use the Display impl or to_string()
Source§impl From<HeaderFieldError> for ValidationError
impl From<HeaderFieldError> for ValidationError
Source§fn from(e: HeaderFieldError) -> Self
fn from(e: HeaderFieldError) -> Self
Converts to this type from the input type.
Source§impl Hash for HeaderFieldError
impl Hash for HeaderFieldError
Source§impl PartialEq for HeaderFieldError
impl PartialEq for HeaderFieldError
Source§fn eq(&self, other: &HeaderFieldError) -> bool
fn eq(&self, other: &HeaderFieldError) -> bool
Tests for
self and other values to be equal, and is used by ==.impl StructuralPartialEq for HeaderFieldError
Auto Trait Implementations§
impl Freeze for HeaderFieldError
impl RefUnwindSafe for HeaderFieldError
impl Send for HeaderFieldError
impl Sync for HeaderFieldError
impl Unpin for HeaderFieldError
impl UnsafeUnpin for HeaderFieldError
impl UnwindSafe for HeaderFieldError
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