Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upSmarter deserialize_bytes and deserialize_byte_buf #115
Conversation
|
This looks really good, thanks! While you are in the read_vec code, could you make a little change? let mut buffer = Vec::new();
try!(self.reader.by_ref().take(len as u64).read_to_end(&mut buffer));could be replaced with let mut bytes = Vec::with_capacity(len);
unsafe { bytes.set_len(len); }
try!(self.reader.read_exact(&mut bytes[..]));and you'd probably see even better performance. (this implementation was ruthlessly stolen from #116) |
src/serde/reader.rs
Outdated
| @@ -192,13 +195,13 @@ impl<'a, R: Read> serde::Deserializer for &'a mut Deserializer<R> { | |||
| fn deserialize_bytes<V>(self, visitor: V) -> Result<V::Value> | |||
| where V: serde::de::Visitor, | |||
| { | |||
| self.deserialize_seq(visitor) | |||
| visitor.visit_byte_buf(try!(self.read_vec())) | |||
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
Great suggestion, thanks -- done! |
6931c26
to
2984b85
Also, call visit_bytes in deserialize_bytes rather than visit_byte_buf.
2984b85
to
676d938
|
Still not as smart as it could be. I filed #118 to follow up in another PR. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
tikue commentedFeb 22, 2017
It seems we can just read all at once rather than reading byte by byte.