[](https://github.com/sigurd4/slice_trait/actions/workflows/build-nightly.yml)
[](https://github.com/sigurd4/slice_trait/actions/workflows/build-stable.yml)
[](https://github.com/sigurd4/slice_trait/actions/workflows/test.yml)
[](https://github.com/sigurd4/slice_trait/actions/workflows/lint.yml)
[](https://crates.io/crates/slice_trait)
[](https://opensource.org/licenses/MIT)
[](https://docs.rs/slice_trait)
[](https://app.codecov.io/github/sigurd4/slice_trait)
# slice_trait
A trait for any slice, with item as an associated type.
This crate is a subset of the crate [`slice_ops`](https://crates.io/crates/slice_ops).
## Example
```rust
use slice_trait::*;
let a: &[i32] = [1, 2, 3].as_slice();
fn first<'a, S: Slice + ?Sized>(slice: &'a S) -> Option<&'a S::Item>
where
S::Item: Copy,
{
slice.as_slice().first()
}
assert_eq!(first(a), Some(&1));
```