aboutsummaryrefslogtreecommitdiff
path: root/crates/test_utils/src/minicore.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/test_utils/src/minicore.rs')
-rw-r--r--crates/test_utils/src/minicore.rs36
1 files changed, 33 insertions, 3 deletions
diff --git a/crates/test_utils/src/minicore.rs b/crates/test_utils/src/minicore.rs
index 5ff60178c..e04ca58d2 100644
--- a/crates/test_utils/src/minicore.rs
+++ b/crates/test_utils/src/minicore.rs
@@ -9,11 +9,13 @@
9//! 9//!
10//! Available flags: 10//! Available flags:
11//! sized: 11//! sized:
12//! unsize: sized
13//! coerce_unsized: unsize
12//! slice: 14//! slice:
13//! range: 15//! range:
14//! unsize: sized
15//! deref: sized 16//! deref: sized
16//! coerce_unsized: unsize 17//! deref_mut: deref
18//! fn:
17//! pin: 19//! pin:
18//! future: pin 20//! future: pin
19//! option: 21//! option:
@@ -64,9 +66,16 @@ pub mod ops {
64 type Target: ?Sized; 66 type Target: ?Sized;
65 fn deref(&self) -> &Self::Target; 67 fn deref(&self) -> &Self::Target;
66 } 68 }
69 // region:deref_mut
70 #[lang = "deref_mut"]
71 pub trait DerefMut: Deref {
72 fn deref_mut(&mut self) -> &mut Self::Target;
73 }
74 // endregion:deref_mut
67 } 75 }
68 pub use self::deref::Deref; 76 pub use self::deref::Deref;
69 // endregion:deref 77 pub use self::deref::DerefMut; //:deref_mut
78 // endregion:deref
70 79
71 // region:range 80 // region:range
72 mod range { 81 mod range {
@@ -104,6 +113,26 @@ pub mod ops {
104 pub use self::range::{Range, RangeFrom, RangeFull, RangeTo}; 113 pub use self::range::{Range, RangeFrom, RangeFull, RangeTo};
105 pub use self::range::{RangeInclusive, RangeToInclusive}; 114 pub use self::range::{RangeInclusive, RangeToInclusive};
106 // endregion:range 115 // endregion:range
116
117 // region:fn
118 mod function {
119 #[lang = "fn"]
120 #[fundamental]
121 pub trait Fn<Args>: FnMut<Args> {}
122
123 #[lang = "fn_mut"]
124 #[fundamental]
125 pub trait FnMut<Args>: FnOnce<Args> {}
126
127 #[lang = "fn_once"]
128 #[fundamental]
129 pub trait FnOnce<Args> {
130 #[lang = "fn_once_output"]
131 type Output;
132 }
133 }
134 pub use self::function::{Fn, FnMut, FnOnce};
135 // endregion:fn
107} 136}
108 137
109// region:slice 138// region:slice
@@ -181,6 +210,7 @@ pub mod prelude {
181 pub mod v1 { 210 pub mod v1 {
182 pub use crate::{ 211 pub use crate::{
183 marker::Sized, // :sized 212 marker::Sized, // :sized
213 ops::{Fn, FnMut, FnOnce}, // :fn
184 option::Option::{self, None, Some}, // :option 214 option::Option::{self, None, Some}, // :option
185 result::Result::{self, Err, Ok}, // :result 215 result::Result::{self, Err, Ok}, // :result
186 }; 216 };