More work
This commit is contained in:
@@ -62,7 +62,7 @@ impl Head {
|
||||
}
|
||||
|
||||
pub fn encode_len(&self) -> usize {
|
||||
super::FRAME_HEADER_LEN
|
||||
super::HEADER_LEN
|
||||
}
|
||||
|
||||
pub fn encode<T: BufMut>(&self, payload_len: usize, dst: &mut T) -> Result<(), Error> {
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
|
||||
/// Header frame
|
||||
///
|
||||
/// This could be either a request or a response.
|
||||
pub struct Headers {
|
||||
stream_id: StreamId,
|
||||
headers: HeaderMap,
|
||||
pseudo: Pseudo,
|
||||
}
|
||||
|
||||
pub struct Pseudo {
|
||||
// Request
|
||||
method: Option<()>,
|
||||
scheme: Option<()>,
|
||||
authority: Option<()>,
|
||||
path: Option<()>,
|
||||
|
||||
// Response
|
||||
status: Option<()>,
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ pub use self::head::{Head, Kind, StreamId};
|
||||
pub use self::settings::{Settings, SettingSet};
|
||||
pub use self::unknown::Unknown;
|
||||
|
||||
const FRAME_HEADER_LEN: usize = 9;
|
||||
pub const HEADER_LEN: usize = 9;
|
||||
|
||||
#[derive(Debug, Clone, PartialEq)]
|
||||
pub enum Frame {
|
||||
@@ -103,8 +103,7 @@ impl Frame {
|
||||
let head = Head::parse(&frame);
|
||||
|
||||
// Extract the payload from the frame
|
||||
let _ = frame.drain_to(FRAME_HEADER_LEN);
|
||||
|
||||
let _ = frame.drain_to(HEADER_LEN);
|
||||
|
||||
match head.kind() {
|
||||
Kind::Unknown => {
|
||||
|
||||
@@ -54,7 +54,7 @@ impl Settings {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn load(head: Head, payload: Bytes) -> Result<Settings, Error> {
|
||||
pub fn load(head: Head, payload: &[u8]) -> Result<Settings, Error> {
|
||||
use self::Setting::*;
|
||||
|
||||
debug_assert_eq!(head.kind(), ::frame::Kind::Settings);
|
||||
@@ -112,7 +112,7 @@ impl Settings {
|
||||
}
|
||||
|
||||
pub fn encode_len(&self) -> usize {
|
||||
super::FRAME_HEADER_LEN + self.payload_len()
|
||||
super::HEADER_LEN + self.payload_len()
|
||||
}
|
||||
|
||||
fn payload_len(&self) -> usize {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
use frame::{Head, Error};
|
||||
use frame::{Frame, Head, Error};
|
||||
use bytes::{Bytes, BytesMut, BufMut};
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq)]
|
||||
@@ -25,3 +25,9 @@ impl Unknown {
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
impl From<Unknown> for Frame {
|
||||
fn from(src: Unknown) -> Frame {
|
||||
Frame::Unknown(src)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user