Skip to content

Commit b7a441a

Browse files
committed
[#119] implemented Extend<(String, Bson)> for OrderedDocument
1 parent 44ad4c4 commit b7a441a

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

src/ordered.rs

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
33
use std::error;
44
use std::fmt::{self, Debug, Display, Formatter};
5-
use std::iter::{FromIterator, Map};
5+
use std::iter::{Extend, FromIterator, Map};
66
use std::marker::PhantomData;
77

88
use chrono::{DateTime, Utc};
@@ -141,7 +141,7 @@ impl<'a> IntoIterator for &'a OrderedDocument {
141141
type IntoIter = OrderedDocumentIterator<'a>;
142142

143143
fn into_iter(self) -> Self::IntoIter {
144-
OrderedDocumentIterator { inner: self.inner.iter(), }
144+
OrderedDocumentIterator { inner: self.inner.iter() }
145145
}
146146
}
147147

@@ -174,7 +174,7 @@ impl<'a> Iterator for OrderedDocumentIterator<'a> {
174174
impl OrderedDocument {
175175
/// Creates a new empty OrderedDocument.
176176
pub fn new() -> OrderedDocument {
177-
OrderedDocument { inner: LinkedHashMap::new(), }
177+
OrderedDocument { inner: LinkedHashMap::new() }
178178
}
179179

180180
/// Gets an iterator over the entries of the map.
@@ -325,7 +325,7 @@ impl OrderedDocument {
325325
}
326326
let first: fn((&'a String, &'a Bson)) -> &'a String = first;
327327

328-
Keys { inner: self.iter().map(first), }
328+
Keys { inner: self.iter().map(first) }
329329
}
330330

331331
/// Gets a collection of all values in the document.
@@ -335,7 +335,7 @@ impl OrderedDocument {
335335
}
336336
let second: fn((&'a String, &'a Bson)) -> &'a Bson = second;
337337

338-
Values { inner: self.iter().map(second), }
338+
Values { inner: self.iter().map(second) }
339339
}
340340

341341
/// Returns the number of elements in the document.
@@ -367,7 +367,7 @@ impl OrderedDocument {
367367
}
368368

369369
pub fn entry(&mut self, k: String) -> Entry {
370-
Entry { inner: self.inner.entry(k), }
370+
Entry { inner: self.inner.entry(k) }
371371
}
372372
}
373373

@@ -435,3 +435,11 @@ impl<'de> Visitor<'de> for OrderedDocumentVisitor {
435435
Ok(inner.into())
436436
}
437437
}
438+
439+
impl Extend<(String, Bson)> for OrderedDocument {
440+
fn extend<T: IntoIterator<Item = (String, Bson)>>(&mut self, iter: T) {
441+
for (k, v) in iter {
442+
self.insert(k, v);
443+
}
444+
}
445+
}

0 commit comments

Comments
 (0)