Lines Matching full:project
148 /// Project a pointer to a type to a pointer of a field.
199 /// It is not allowed to project into types that implement custom [`Deref`] or
202 /// The macro has basic syntax of `kernel::ptr::project!(ptr, projection)`, where `ptr` is an
208 /// `kernel::ptr::project!(mut ptr, projection)`. By default, a const pointer is created.
210 /// `ptr::project!` macro can perform both fallible indexing and build-time checked indexing.
222 /// let field_ptr: *const u32 = kernel::ptr::project!(ptr, .field);
227 /// let field_ptr: *const u32 = kernel::ptr::project!(ptr, .1);
235 /// let field_ptr: *const u8 = kernel::ptr::project!(ptr, [1]);
238 /// // kernel::ptr::project!(ptr, [128]);
241 /// kernel::ptr::project!(ptr, [128]?);
251 /// Ok(kernel::ptr::project!(ptr, [128]?))
260 /// let field_ptr: *mut u16 = kernel::ptr::project!(mut ptr, [1].1);
280 $crate::ptr::project!(@gen $ptr, $($rest)*)
286 $crate::ptr::project!(@gen $ptr, $($rest)*)
291 $crate::ptr::project!(@gen $ptr, $($rest)*)
295 $crate::ptr::project!(@gen ptr, $($proj)*);
300 // We currently always project using mutable pointer, as it is not decided whether `&raw
302 $crate::ptr::project!(@gen ptr, $($proj)*);