Add a ref_slice module.
Utility functions for converting &T to an &[T] slice with a single element.
This commit is contained in:
@@ -21,3 +21,4 @@ mod write;
|
|||||||
mod constant_hash;
|
mod constant_hash;
|
||||||
mod predicates;
|
mod predicates;
|
||||||
mod legalizer;
|
mod legalizer;
|
||||||
|
mod ref_slice;
|
||||||
|
|||||||
18
lib/cretonne/src/ref_slice.rs
Normal file
18
lib/cretonne/src/ref_slice.rs
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
//! Functions for converting a reference into a singleton slice.
|
||||||
|
//!
|
||||||
|
//! See also the ref_slice crate on crates.io.
|
||||||
|
//!
|
||||||
|
//! We define the functions here to avoid external dependencies, and to ensure that they are
|
||||||
|
//! inlined in this crate.
|
||||||
|
//!
|
||||||
|
//! Despite their using an unsafe block, these functions are completely safe.
|
||||||
|
|
||||||
|
use std::slice;
|
||||||
|
|
||||||
|
pub fn ref_slice<T>(s: &T) -> &[T] {
|
||||||
|
unsafe { slice::from_raw_parts(s, 1) }
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn ref_slice_mut<T>(s: &mut T) -> &mut [T] {
|
||||||
|
unsafe { slice::from_raw_parts_mut(s, 1) }
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user