aboutsummaryrefslogtreecommitdiff
path: root/crates/test_utils
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2021-06-15 20:49:00 +0100
committerAleksey Kladov <[email protected]>2021-06-15 20:49:00 +0100
commit3efe5c3426a311b6d617f9718b82e9a598dfa06d (patch)
tree261a0436ebf1192644ce398144d005e767326fbc /crates/test_utils
parent2eef66a2ed9b02962511e38c620efb23e2d65b00 (diff)
internal: add future to minicore
Diffstat (limited to 'crates/test_utils')
-rw-r--r--crates/test_utils/src/minicore.rs37
1 files changed, 37 insertions, 0 deletions
diff --git a/crates/test_utils/src/minicore.rs b/crates/test_utils/src/minicore.rs
index 8c0d122dc..127d06e59 100644
--- a/crates/test_utils/src/minicore.rs
+++ b/crates/test_utils/src/minicore.rs
@@ -14,6 +14,8 @@
14//! unsize: sized 14//! unsize: sized
15//! deref: sized 15//! deref: sized
16//! coerce_unsized: unsize 16//! coerce_unsized: unsize
17//! pin:
18//! future: pin
17 19
18pub mod marker { 20pub mod marker {
19 // region:sized 21 // region:sized
@@ -113,6 +115,41 @@ pub mod slice {
113} 115}
114// endregion:slice 116// endregion:slice
115 117
118// region:pin
119pub mod pin {
120 #[lang = "pin"]
121 #[fundamental]
122 pub struct Pin<P> {
123 pointer: P,
124 }
125}
126// endregion:pin
127
128// region:future
129pub mod future {
130 use crate::{pin::Pin, task::{Poll, Context}};
131
132 #[lang = "future_trait"]
133 pub trait Future {
134 type Output;
135 #[lang = "poll"]
136 fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output>;
137 }
138}
139pub mod task {
140 pub enum Poll<T> {
141 #[lang = "Ready"]
142 Ready(T),
143 #[lang = "Pending"]
144 Pending,
145 }
146
147 pub struct Context<'a> {
148 waker: &'a (),
149 }
150}
151// endregion:future
152
116pub mod prelude { 153pub mod prelude {
117 pub mod v1 { 154 pub mod v1 {
118 pub use crate::marker::Sized; // :sized 155 pub use crate::marker::Sized; // :sized