Calculate correct size for typed::Sender::send's serialization buffer. Needs a Vec for now.
This commit is contained in:
parent
ec0567e0cc
commit
396c9246d8
1 changed files with 4 additions and 7 deletions
11
src/typed.rs
11
src/typed.rs
|
@ -5,17 +5,16 @@ use serde::Serialize;
|
|||
use serde::de::DeserializeOwned;
|
||||
use ssmarshal;
|
||||
use std::io::{Read, Write};
|
||||
use std::marker::{PhantomData, Sized};
|
||||
#[allow(unused_imports)]
|
||||
use std::marker::PhantomData;
|
||||
use std::mem::size_of;
|
||||
|
||||
/// Sends encoded structs of type `T` over an inner `io::Write` instance.
|
||||
pub struct Sender<W: Write, T: Serialize + Sized> {
|
||||
pub struct Sender<W: Write, T: Serialize> {
|
||||
w: W,
|
||||
_t: PhantomData<T>,
|
||||
}
|
||||
|
||||
impl<W: Write, T: Serialize + Sized> Sender<W, T> {
|
||||
impl<W: Write, T: Serialize> Sender<W, T> {
|
||||
/// Construct a `Sender` that sends encoded structs over the supplied
|
||||
/// `io::Write`.
|
||||
pub fn new(w: W) -> Sender<W, T> {
|
||||
|
@ -44,10 +43,8 @@ impl<W: Write, T: Serialize + Sized> Sender<W, T> {
|
|||
///
|
||||
/// See also: [`send`](#method.send)
|
||||
pub fn queue(&mut self, v: &T) -> Result<usize> {
|
||||
// TODO: Calculate buffer length with size_of::<T>().
|
||||
// let mut ser_buf = [0u8; size_of::<T>()];
|
||||
let mut ser_buf = vec![0u8; size_of::<T>()];
|
||||
|
||||
let mut ser_buf = [0u8; 1024];
|
||||
let ser_len = ssmarshal::serialize(&mut ser_buf, v)?;
|
||||
let ser = &ser_buf[0..ser_len];
|
||||
#[cfg(feature = "trace")] {
|
||||
|
|
Loading…
Reference in a new issue