Skip to main content

net_wire/qpack/table/
mod.rs

1//! Shared QPACK table primitives.
2
3pub(crate) mod dynamic;
4mod r#static;
5
6pub use dynamic::{QpackDynamicTable, QpackDynamicTableEntry, QpackDynamicTableError};
7pub use r#static::{QPACK_STATIC_TABLE_LEN, QpackStaticTable};
8
9/// A borrowed QPACK header field with byte-oriented name and value.
10#[derive(Clone, Copy, Debug, Eq, PartialEq)]
11pub struct QpackHeaderFieldRef<'a> {
12    name: &'a [u8],
13    value: &'a [u8],
14}
15
16impl<'a> QpackHeaderFieldRef<'a> {
17    /// Creates a borrowed header field from opaque name and value bytes.
18    pub const fn new(name: &'a [u8], value: &'a [u8]) -> Self {
19        Self { name, value }
20    }
21
22    /// Returns the opaque header name bytes.
23    pub const fn name(self) -> &'a [u8] {
24        self.name
25    }
26
27    /// Returns the opaque header value bytes.
28    pub const fn value(self) -> &'a [u8] {
29        self.value
30    }
31}