Skip to content

Commit d3273b4

Browse files
committed
use built in forward_to_deserialize
1 parent 9837869 commit d3273b4

File tree

3 files changed

+7
-38
lines changed

3 files changed

+7
-38
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "serde_bencode"
33
description = "A Serde backed Bencode encoding/decoding library for Rust."
4-
version = "0.1.0"
4+
version = "0.1.1"
55
authors = ["Toby Padilla <[email protected]>"]
66
repository = "https://github.com/toby/serde-bencode"
77
license = "MIT"

src/decoder.rs

Lines changed: 5 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,6 @@ use serde::de::{Deserializer, Deserialize, Visitor, VariantVisitor, SeqVisitor,
55
EnumVisitor, Error};
66
use error::BencodeError;
77

8-
macro_rules! forward_deserialize {
9-
($($name:ident($($arg:ident: $ty:ty,)*);)*) => {
10-
$(#[inline]
11-
fn $name<V: Visitor>(&mut self, $($arg: $ty,)* visitor: V) -> Result<V::Value> {
12-
self.deserialize(visitor)
13-
})*
14-
}
15-
}
16-
178
pub type Result<T> = result::Result<T, BencodeError>;
189

1910
pub struct BencodeVisitor<'a, R: 'a + Read> {
@@ -239,34 +230,11 @@ impl<R: Read> Deserializer for BencodeDecoder<R> {
239230
}
240231
}
241232

242-
forward_deserialize!(
243-
deserialize_i64();
244-
deserialize_string();
245-
deserialize_seq();
246-
deserialize_seq_fixed_size(_len: usize,);
247-
deserialize_bool();
248-
deserialize_isize();
249-
deserialize_i8();
250-
deserialize_i16();
251-
deserialize_i32();
252-
deserialize_usize();
253-
deserialize_u8();
254-
deserialize_u16();
255-
deserialize_u32();
256-
deserialize_u64();
257-
deserialize_f32();
258-
deserialize_f64();
259-
deserialize_char();
260-
deserialize_str();
261-
deserialize_unit();
262-
deserialize_bytes();
263-
deserialize_map();
264-
deserialize_unit_struct(_name: &'static str,);
265-
deserialize_tuple_struct(_name: &'static str, _len: usize,);
266-
deserialize_tuple(_len: usize,);
267-
deserialize_newtype_struct(_name: &'static str,);
268-
deserialize_ignored_any();
269-
);
233+
forward_to_deserialize! {
234+
i64 string seq seq_fixed_size bool isize i8 i16 i32 usize u8 u16 u32
235+
u64 f32 f64 char str unit bytes map unit_struct tuple_struct tuple
236+
newtype_struct ignored_any
237+
}
270238

271239
#[inline]
272240
fn deserialize_option<V:Visitor>(&mut self, visitor: V) -> Result<V::Value> {

src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#![feature(proc_macro)]
22

3+
#[macro_use]
34
extern crate serde;
45
#[macro_use]
56
extern crate serde_derive;

0 commit comments

Comments
 (0)