Skip to content

Commit 4573305

Browse files
author
Michał Majda
committed
more no_std support
1 parent 89f3a0d commit 4573305

19 files changed

+68
-62
lines changed

Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ test = false
2424

2525
[dependencies]
2626
either = { version = "1.0", default-features = false }
27+
hashbrown = { version = "0.8", optional = true}
2728

2829
[dev-dependencies]
2930
rand = "0.7"
@@ -38,6 +39,7 @@ version = "0.2"
3839

3940
[features]
4041
default = ["use_std"]
42+
use_alloc = ["hashbrown"]
4143
use_std = []
4244

4345
[profile]

src/adaptors/mod.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ pub use self::coalesce::*;
1111
pub use self::map::{map_into, map_ok, MapInto, MapOk};
1212
#[allow(deprecated)]
1313
pub use self::map::MapResults;
14-
#[cfg(feature = "use_std")]
1514
pub use self::multi_product::*;
1615

1716
use std::fmt;

src/adaptors/multi_product.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
#![cfg(feature = "use_std")]
21

2+
use crate::lib::Vec;
33
use crate::size_hint;
44
use crate::Itertools;
55

src/combinations.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
use std::fmt;
2+
use crate::lib::Vec;
23

34
use super::lazy_buffer::LazyBuffer;
45

src/combinations_with_replacement.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
use std::fmt;
22

3+
#[cfg(not(feature = "use_std"))]
4+
use crate::lib::vec;
5+
use crate::lib::Vec;
6+
37
use super::lazy_buffer::LazyBuffer;
48

59
/// An iterator to iterate through all the `n`-length combinations in an iterator, with replacement.

src/free.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33
//! The benefit of free functions is that they accept any `IntoIterator` as
44
//! argument, so the resulting code may be easier to read.
55
6+
#[cfg(feature = "use_std")]
7+
use crate::VecIntoIter;
68
#[cfg(feature = "use_std")]
79
use std::fmt::Display;
810
use std::iter::{self, Zip};
9-
#[cfg(feature = "use_std")]
10-
type VecIntoIter<T> = ::std::vec::IntoIter<T>;
1111

1212
#[cfg(feature = "use_std")]
1313
use crate::Itertools;
@@ -17,13 +17,11 @@ pub use crate::adaptors::{
1717
merge,
1818
put_back,
1919
};
20-
#[cfg(feature = "use_std")]
2120
pub use crate::put_back_n_impl::put_back_n;
2221
#[cfg(feature = "use_std")]
2322
pub use crate::multipeek_impl::multipeek;
2423
#[cfg(feature = "use_std")]
2524
pub use crate::peek_nth::peek_nth;
26-
#[cfg(feature = "use_std")]
2725
pub use crate::kmerge_impl::kmerge;
2826
pub use crate::zip_eq_impl::zip_eq;
2927
pub use crate::merge_join::merge_join_by;

src/group_map.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
#![cfg(feature = "use_std")]
21

3-
use std::collections::HashMap;
2+
use crate::lib::{HashMap, Vec};
43
use std::hash::Hash;
54
use std::iter::Iterator;
65

@@ -21,6 +20,7 @@ pub fn into_group_map<I, K, V>(iter: I) -> HashMap<K, Vec<V>>
2120
lookup
2221
}
2322

23+
#[cfg(feature = "use_std")]
2424
pub fn into_group_map_by<I, K, V>(iter: I, f: impl Fn(&V) -> K) -> HashMap<K, Vec<V>>
2525
where
2626
I: Iterator<Item=V>,

src/groupbylazy.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use std::cell::{Cell, RefCell};
2-
use std::vec;
2+
use crate::lib::{vec, Vec};
33

44
/// A trait to unify FnMut for GroupBy with the chunk key in IntoChunks
55
trait KeyFunction<A> {

src/kmerge_impl.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
use crate::size_hint;
22
use crate::Itertools;
3+
use crate::lib::Vec;
34

45
use std::mem::replace;
56
use std::fmt;

src/lazy_buffer.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
use std::ops::Index;
2+
use crate::lib::Vec;
23

34
#[derive(Debug, Clone)]
45
pub struct LazyBuffer<I: Iterator> {

0 commit comments

Comments
 (0)