Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 125fa5b

Browse files
Merge pull request #680 from k-nasa/no_std
Some modules support no_std
2 parents 39f2c6d + 3e24e0b commit 125fa5b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

77 files changed

+236
-178
lines changed

‎.github/workflows/ci.yml‎

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ jobs:
4040
with:
4141
command: check
4242
args: --features unstable --all --bins --examples --tests
43+
4344
- name: check bench
4445
uses: actions-rs/cargo@v1
4546
if: matrix.rust == 'nightly'
@@ -71,6 +72,24 @@ jobs:
7172
command: test
7273
args: --doc --features "unstable attributes"
7374

75+
build__with_no_std:
76+
name: Build with no-std
77+
runs-on: ubuntu-latest
78+
79+
steps:
80+
- uses: actions/checkout@master
81+
82+
- name: setup
83+
run: |
84+
rustup default nightly
85+
rustup target add thumbv7m-none-eabi
86+
87+
- name: check no_std
88+
uses: actions-rs/cargo@v1
89+
with:
90+
command: check
91+
args: --no-default-features --features alloc --target thumbv7m-none-eabi -Z avoid-dev-deps
92+
7493
check_fmt_and_docs:
7594
name: Checking fmt and docs
7695
runs-on: ubuntu-latest

‎Cargo.toml‎

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,19 @@ docs = ["attributes", "unstable", "default"]
3838
unstable = ["std", "broadcaster", "futures-timer"]
3939
attributes = ["async-attributes"]
4040
std = [
41+
"alloc",
4142
"crossbeam-utils",
42-
"futures-core",
43+
"futures-core/std",
4344
"futures-io",
4445
"memchr",
4546
"once_cell",
46-
"pin-project-lite",
4747
"pin-utils",
4848
"slab",
4949
]
50+
alloc = [
51+
"futures-core/alloc",
52+
"pin-project-lite",
53+
]
5054

5155
[dependencies]
5256
async-attributes = { version = "1.1.1", optional = true }
@@ -55,7 +59,7 @@ broadcaster = { version = "1.0.0", optional = true }
5559
crossbeam-channel = { version = "0.4.0", optional = true }
5660
crossbeam-deque = { version = "0.7.2", optional = true }
5761
crossbeam-utils = { version = "0.7.0", optional = true }
58-
futures-core = { version = "0.3.1", optional = true }
62+
futures-core = { version = "0.3.1", optional = true, default-features = false }
5963
futures-io = { version = "0.3.1", optional = true }
6064
futures-timer = { version = "2.0.2", optional = true }
6165
kv-log-macro = { version = "1.0.4", optional = true }

‎src/future/future/mod.rs‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ cfg_unstable_default! {
2121
}
2222

2323
extension_trait! {
24-
use std::pin::Pin;
25-
use std::ops::{Deref, DerefMut};
24+
use core::pin::Pin;
25+
use core::ops::{Deref, DerefMut};
2626

2727
use crate::task::{Context, Poll};
2828

@@ -136,7 +136,7 @@ extension_trait! {
136136
137137
[`Future`]: ../future/trait.Future.html
138138
"#]
139-
pub trait FutureExt: std::future::Future {
139+
pub trait FutureExt: core::future::Future {
140140
/// Returns a Future that delays execution for a specified time.
141141
///
142142
/// # Examples

‎src/future/mod.rs‎

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,20 @@
4646
//! [`Future::race`]: trait.Future.html#method.race
4747
//! [`Future::try_race`]: trait.Future.html#method.try_race
4848
49-
pub use future::Future;
50-
pub use pending::pending;
51-
pub use poll_fn::poll_fn;
52-
pub use ready::ready;
49+
cfg_alloc! {
50+
pub use future::Future;
51+
pub(crate) mod future;
52+
}
53+
54+
cfg_std! {
55+
pub use pending::pending;
56+
pub use poll_fn::poll_fn;
57+
pub use ready::ready;
5358

54-
pub(crate)mod future;
55-
mod pending;
56-
mod poll_fn;
57-
mod ready;
59+
mod pending;
60+
mod poll_fn;
61+
mod ready;
62+
}
5863

5964
cfg_default! {
6065
pub use timeout::{timeout, TimeoutError};

‎src/lib.rs‎

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,7 @@
221221
//! features = ["std"]
222222
//! ```
223223
224+
#![cfg_attr(not(feature = "std"), no_std)]
224225
#![cfg_attr(feature = "docs", feature(doc_cfg))]
225226
#![warn(missing_docs, missing_debug_implementations, rust_2018_idioms)]
226227
#![allow(clippy::mutex_atomic, clippy::module_inception)]
@@ -229,6 +230,8 @@
229230
#![doc(html_logo_url = "https://async.rs/images/logo--hero.svg")]
230231
#![recursion_limit = "2048"]
231232

233+
extern crate alloc;
234+
232235
#[macro_use]
233236
mod utils;
234237

@@ -240,14 +243,17 @@ pub use async_attributes::{main, test};
240243
#[cfg(feature = "std")]
241244
mod macros;
242245

243-
cfg_std! {
246+
cfg_alloc! {
247+
pub mod task;
244248
pub mod future;
249+
pub mod stream;
250+
}
251+
252+
cfg_std! {
245253
pub mod io;
246254
pub mod os;
247255
pub mod prelude;
248-
pub mod stream;
249256
pub mod sync;
250-
pub mod task;
251257
}
252258

253259
cfg_default! {

‎src/stream/double_ended_stream/next_back.rs‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
use std::pin::Pin;
2-
use std::future::Future;
1+
use core::pin::Pin;
2+
use core::future::Future;
33

44
use crate::stream::DoubleEndedStream;
55
use crate::task::{Context, Poll};

‎src/stream/double_ended_stream/nth_back.rs‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
use std::future::Future;
2-
use std::pin::Pin;
3-
use std::task::{Context, Poll};
1+
use core::future::Future;
2+
use core::pin::Pin;
3+
use core::task::{Context, Poll};
44

55
use crate::stream::DoubleEndedStream;
66

‎src/stream/double_ended_stream/rfind.rs‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
use std::task::{Context, Poll};
2-
use std::future::Future;
3-
use std::pin::Pin;
1+
use core::task::{Context, Poll};
2+
use core::future::Future;
3+
use core::pin::Pin;
44

55
use crate::stream::DoubleEndedStream;
66

‎src/stream/double_ended_stream/rfold.rs‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
use std::future::Future;
2-
use std::pin::Pin;
3-
use std::task::{Context, Poll};
1+
use core::future::Future;
2+
use core::pin::Pin;
3+
use core::task::{Context, Poll};
44

55
use pin_project_lite::pin_project;
66

‎src/stream/double_ended_stream/try_rfold.rs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use crate::future::Future;
2-
use std::pin::Pin;
2+
use core::pin::Pin;
33
use crate::task::{Context, Poll};
44

55
use pin_project_lite::pin_project;

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /