mirror of
https://github.com/tokio-rs/tokio.git
synced 2025-10-01 12:20:39 +00:00
added Default Codec for Udp
This commit is contained in:
parent
2cb600bd19
commit
1a6753df1f
@ -44,7 +44,7 @@ mod window;
|
|||||||
mod write_all;
|
mod write_all;
|
||||||
pub use self::copy::{copy, Copy};
|
pub use self::copy::{copy, Copy};
|
||||||
pub use self::frame::{EasyBuf, EasyBufMut, FramedRead, FramedWrite, Framed, Codec};
|
pub use self::frame::{EasyBuf, EasyBufMut, FramedRead, FramedWrite, Framed, Codec};
|
||||||
pub use self::udp_frame::{FramedUdp, framed_udp, FramedUdpRead, FramedUdpWrite, CodecUdp};
|
pub use self::udp_frame::{FramedUdp, framed_udp, FramedUdpRead, FramedUdpWrite, CodecUdp, VecDGramCodec};
|
||||||
pub use self::flush::{flush, Flush};
|
pub use self::flush::{flush, Flush};
|
||||||
pub use self::read_exact::{read_exact, ReadExact};
|
pub use self::read_exact::{read_exact, ReadExact};
|
||||||
pub use self::read_to_end::{read_to_end, ReadToEnd};
|
pub use self::read_to_end::{read_to_end, ReadToEnd};
|
||||||
|
@ -241,3 +241,22 @@ impl<C : CodecUdp> Sink for FramedUdpWrite<C> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Default implementation of a DGram "parser"
|
||||||
|
/// This receives and produces a tuple of ('SocketAddr', `Vec`<u8>)
|
||||||
|
pub struct VecDGramCodec;
|
||||||
|
|
||||||
|
impl CodecUdp for VecDGramCodec {
|
||||||
|
type In = (SocketAddr, Vec<u8>);
|
||||||
|
type Out = (SocketAddr, Vec<u8>);
|
||||||
|
|
||||||
|
fn decode(&mut self, addr : &SocketAddr, buf: &[u8]) -> Result<Self::In, io::Error> {
|
||||||
|
Ok((*addr, buf.into()))
|
||||||
|
}
|
||||||
|
|
||||||
|
fn encode(&mut self, item: &Self::Out, into: &mut Vec<u8>) -> SocketAddr {
|
||||||
|
into.extend_from_slice(item.1.as_slice());
|
||||||
|
into.push('\n' as u8);
|
||||||
|
item.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user