Lines Matching refs:projection
12 /// Error raised when a projection is attempted on an array or slice out of bounds.
22 /// A helper trait to perform index projection.
183 /// A helper trait to perform field projection.
187 /// used as base of projection, as they can inject unsoundness. Users therefore must not specify
217 // Create a valid allocation to start projection, as `base` is not necessarily so. The
239 /// Create a projection from a raw pointer.
250 /// The macro has basic syntax of `kernel::ptr::project!(ptr, projection)`, where `ptr` is an
251 /// expression that evaluates to a raw pointer which serves as the base of projection. `projection`
252 /// can be a projection expression of form `.field` (normally identifier, or numeral in case of
256 /// `kernel::ptr::project!(mut ptr, projection)`. By default, a const pointer is created.
320 // Field projection. `$field` needs to be `tt` to support tuple index like `.0`.
324 $crate::ptr::projection::ProjectField::proj($ptr, #[inline(always)] |ptr| {
337 // Fallible index projection.
339 let $ptr = $crate::ptr::projection::ProjectIndex::get($index, $ptr)
340 .ok_or($crate::ptr::projection::OutOfBound)?;
343 // Panicking index projection.
345 let $ptr = $crate::ptr::projection::ProjectIndex::index($index, $ptr);
348 // Build-time checked index projection.
350 let $ptr = $crate::ptr::projection::ProjectIndex::build_index($index, $ptr);