1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
# thin-slice
An owned slice that packs the slice storage into a single word when possible.
## Usage
```rust
extern crate thin_slice;
use std::mem;
use thin_slice::ThinBoxedSlice;
struct Ticket {
numbers: Box<[u8]>,
winning: bool,
}
struct ThinTicket {
numbers: ThinBoxedSlice<u8>,
winning: bool,
}
fn main() {
let nums = vec![4, 8, 15, 16, 23, 42].into_boxed_slice();
let ticket = ThinTicket {
numbers: nums.into(),
winning: false,
};
println!("Numbers: {:?}", ticket.numbers);
println!("size_of::<usize>(): {}", mem::size_of::<usize>());
println!("size_of::<Ticket>(): {}", mem::size_of::<Ticket>());
println!("size_of::<ThinTicket>(): {}", mem::size_of::<ThinTicket>());
}
```
Output on `x86_64`:
```
Numbers: [4, 8, 15, 16, 23, 42]
size_of::<usize>(): 8
size_of::<Ticket>(): 24
size_of::<ThinTicket>(): 16
```
## License
thin-slice is distributed under the terms of the
[Mozilla Public License, v. 2.0](https://www.mozilla.org/MPL/2.0/).
|