Skip to content

Commit 0f14353

Browse files
committed
Merge pull request #25 from skade/beta-1.0.0
Replace usage of push_all and resize with extend
2 parents ee8ba80 + 90336c8 commit 0f14353

File tree

7 files changed

+11
-19
lines changed

7 files changed

+11
-19
lines changed

src/consumer.rs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
//! This consumer will take 4 samples from the input, print them, then stop
99
//!
1010
//! ```rust
11-
//! #![feature(io)]
1211
//! use nom::{IResult,Needed,MemProducer,Consumer,ConsumerState};
1312
//! use std::str;
1413
//! use std::io::SeekFrom;
@@ -113,7 +112,7 @@ pub trait Consumer {
113112
let mut tmp = Vec::new();
114113
//println!("before:\n{}", acc.to_hex(16));
115114
//println!("after:\n{}", (&acc[consumed..acc.len()]).to_hex(16));
116-
tmp.push_all(&acc[consumed..acc.len()]);
115+
tmp.extend(acc[consumed..acc.len()].iter().cloned());
117116
acc.clear();
118117
acc = tmp;
119118
} else {
@@ -124,7 +123,7 @@ pub trait Consumer {
124123
acc.clear();
125124
} else {
126125
let mut tmp = Vec::new();
127-
tmp.push_all(&acc[consumed..acc.len()]);
126+
tmp.extend(acc[consumed..acc.len()].iter().cloned());
128127
acc.clear();
129128
acc = tmp;
130129
}
@@ -134,7 +133,7 @@ pub trait Consumer {
134133
match state {
135134
Data(v) => {
136135
//println!("got data: {} bytes", v.len());
137-
acc.push_all(v);
136+
acc.extend(v.iter().cloned());
138137
position = position + v.len();
139138
},
140139
Eof(v) => {
@@ -146,7 +145,7 @@ pub trait Consumer {
146145
} else {
147146
//println!("eof with {} bytes", v.len());
148147
eof = true;
149-
acc.push_all(v);
148+
acc.extend(v.iter().cloned());
150149
position = position + v.len();
151150
break;
152151
}

src/lib.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,6 @@
3434
//! ```
3535
//!
3636
37-
#![feature(collections)]
38-
3937
pub use self::util::*;
4038
pub use self::internal::*;//{IResult, IResultClosure, GetInput, GetOutput};
4139
pub use self::map::*;

src/macros.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
extern crate collections;
2-
31
#[macro_export]
42
macro_rules! closure (
53
($ty:ty, $submac:ident!( $($args:tt)* )) => (

src/nom.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66
//! but the macros system makes no promises.
77
//!
88
9-
extern crate collections;
10-
119
use std::fmt::Debug;
1210
use internal::*;
1311
use internal::IResult::*;

src/producer.rs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ use std::fs::File;
3434
use std::path::Path;
3535
use std::io;
3636
use std::io::{Read,Seek,SeekFrom};
37+
use std::iter::repeat;
3738

3839
/// Holds the data producer's current state
3940
///
@@ -78,9 +79,10 @@ impl FileProducer {
7879

7980
impl Producer for FileProducer {
8081
fn produce(&mut self) -> ProducerState<&[u8]> {
82+
let len = self.v.len();
8183
//let mut v = Vec::with_capacity(self.size);
8284
//self.v.clear();
83-
self.v.resize(self.size, 0);
85+
self.v.extend(repeat(0).take(self.size - len));
8486
match self.file.read(&mut self.v) {
8587
Err(e) => {
8688
//println!("producer error: {:?}", e);
@@ -217,21 +219,21 @@ macro_rules! pusher (
217219
match state {
218220
ProducerState::Data(v) => {
219221
//println!("got data");
220-
acc.push_all(v)
222+
acc.extend(v.iter().cloned())
221223
},
222224
ProducerState::Eof(v) => {
223225
if v.is_empty() {
224226
//println!("eof empty, acc contains {} bytes: {:?}", acc.len(), acc);
225227
break;
226228
} else {
227229
//println!("eof with {} bytes", v.len());
228-
acc.push_all(v)
230+
acc.extend(v.iter().cloned())
229231
}
230232
}
231233
_ => {break;}
232234
}
233235
let mut v2: Vec<u8> = Vec::new();
234-
v2.push_all(&acc[..]);
236+
v2.extend(acc[..].iter().cloned());
235237
//let p = IResult::Done(b"", v2.as_slice());
236238
match $f(&v2[..]) {
237239
IResult::Error(e) => {
@@ -244,7 +246,7 @@ macro_rules! pusher (
244246
IResult::Done(i, _) => {
245247
//println!("data, done");
246248
acc.clear();
247-
acc.push_all(i);
249+
acc.extend(i.iter().cloned());
248250
}
249251
}
250252
}

tests/mp4.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
#![feature(log_syntax,trace_macros)]
21
#![allow(dead_code)]
32

43
#[macro_use]

tests/test1.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
#![feature(collections,slice_patterns)]
2-
31
#[macro_use]
42
extern crate nom;
53

0 commit comments

Comments
 (0)