Skip to main content

## slice_owned

# Function slice_owned

Source

    pub fn slice_owned<O, F>(owner: O, slicer: F) -> OwnedSlicewhere
        O: Send + Sync + 'static,
        F: FnOnce(&O) -> &[u8],

Expand description

Makes an `OwnedSlice` out of an `owner` and a `slicer` function.

### §Examples

    let vec = vec![1, 2, 3, 4];

    // Identical to slicing via `&v[1..3]` but produces an owned slice
    let slice: OwnedSlice = slice_owned(vec, |v| &v[1..3]);
    assert_eq!(&*slice, [2, 3]);

    let vec = vec![1, 2, 3, 4];

    // Identical to slicing via `&v[..]` but produces an owned slice
    let slice: OwnedSlice = slice_owned(vec, Deref::deref);
    assert_eq!(&*slice, [1, 2, 3, 4]);