Struct core_extensions::slices::SliceBias
source · [−]pub struct SliceBias {
pub start: BiasDirection,
pub end: BiasDirection,
}
slices
only.Expand description
What directions SliceExt
::{
slice_lossy
,
slice_lossy_mut
}
are biased towards.
For str
this has the effect of going in those directions if
the start
and/or end
bound is between char boundaries.
For [T]
this has no effect and
it is recommended to use ()
as a parameter instead
(()
is converted to SliceBias::OUT
).
Example
String
use core_extensions::SliceExt;
use core_extensions::slices::SliceBias;
let word = "niño";
assert_eq!(
word.char_indices().collect::<Vec<_>>(),
&[(0, 'n'), (1, 'i'), (2, 'ñ'), (4, 'o')]
);
assert_eq!(word.slice_lossy(0..1000, ()), word);
assert_eq!(word.slice_lossy(10..10000, ()), "");
assert_eq!(word.slice_lossy(0..4, ()), "niñ");
assert_eq!(word.slice_lossy(0..3, ()), "niñ");
assert_eq!(word.slice_lossy(0..2, ()), "ni");
assert_eq!(word.slice_lossy(3..3, ()), "ñ");
assert_eq!(word.slice_lossy(3..4, ()), "ñ");
assert_eq!(word.slice_lossy(2..3, ()), "ñ");
assert_eq!(word.slice_lossy(0..1000, SliceBias::OUT), word);
assert_eq!(word.slice_lossy(10..10000, SliceBias::OUT), "");
assert_eq!(word.slice_lossy(0..4, SliceBias::OUT), "niñ");
assert_eq!(word.slice_lossy(0..3, SliceBias::OUT), "niñ");
assert_eq!(word.slice_lossy(0..2, SliceBias::OUT), "ni");
assert_eq!(word.slice_lossy(3..3, SliceBias::OUT), "ñ");
assert_eq!(word.slice_lossy(3..4, SliceBias::OUT), "ñ");
assert_eq!(word.slice_lossy(2..3, SliceBias::OUT), "ñ");
assert_eq!(word.slice_lossy(0..10000, SliceBias::IN), word);
assert_eq!(word.slice_lossy(10..10000, SliceBias::IN), "");
assert_eq!(word.slice_lossy(0..4, SliceBias::IN), "niñ");
assert_eq!(word.slice_lossy(0..3, SliceBias::IN), "ni");
assert_eq!(word.slice_lossy(0..2, SliceBias::IN), "ni");
assert_eq!(word.slice_lossy(3..3, SliceBias::IN), "");
assert_eq!(word.slice_lossy(3..4, SliceBias::IN), "");
assert_eq!(word.slice_lossy(2..3, SliceBias::IN), "");
assert_eq!(word.slice_lossy(0..1000, SliceBias::LEFT), word);
assert_eq!(word.slice_lossy(10..10000, SliceBias::LEFT), "");
assert_eq!(word.slice_lossy(0..4, SliceBias::LEFT), "niñ");
assert_eq!(word.slice_lossy(0..3, SliceBias::LEFT), "ni");
assert_eq!(word.slice_lossy(0..2, SliceBias::LEFT), "ni");
assert_eq!(word.slice_lossy(3..3, SliceBias::LEFT), "");
assert_eq!(word.slice_lossy(3..4, SliceBias::LEFT), "ñ");
assert_eq!(word.slice_lossy(2..3, SliceBias::LEFT), "");
assert_eq!(word.slice_lossy(0..1000, SliceBias::RIGHT), word);
assert_eq!(word.slice_lossy(10..10000, SliceBias::RIGHT), "");
assert_eq!(word.slice_lossy(0..4, SliceBias::RIGHT), "niñ");
assert_eq!(word.slice_lossy(0..3, SliceBias::RIGHT), "niñ");
assert_eq!(word.slice_lossy(0..2, SliceBias::RIGHT), "ni");
assert_eq!(word.slice_lossy(3..3, SliceBias::RIGHT), "");
assert_eq!(word.slice_lossy(3..4, SliceBias::RIGHT), "");
assert_eq!(word.slice_lossy(2..3, SliceBias::RIGHT), "ñ");
Fields
start: BiasDirection
bias of the start bound
end: BiasDirection
bias of the end bound
Implementations
Trait Implementations
sourceimpl From<()> for SliceBias
impl From<()> for SliceBias
Returns a SliceBias::OUT
sourceimpl From<(BiasDirection, BiasDirection)> for SliceBias
impl From<(BiasDirection, BiasDirection)> for SliceBias
sourcefn from((start, end): (BiasDirection, BiasDirection)) -> Self
fn from((start, end): (BiasDirection, BiasDirection)) -> Self
Converts to this type from the input type.
sourceimpl From<(BiasDirection,)> for SliceBias
impl From<(BiasDirection,)> for SliceBias
sourcefn from((dir): (BiasDirection,)) -> Self
fn from((dir): (BiasDirection,)) -> Self
Converts to this type from the input type.
sourceimpl From<BiasDirection> for SliceBias
impl From<BiasDirection> for SliceBias
sourcefn from(dir: BiasDirection) -> Self
fn from(dir: BiasDirection) -> Self
Converts to this type from the input type.
sourceimpl PartialEq<SliceBias> for SliceBias
impl PartialEq<SliceBias> for SliceBias
impl Copy for SliceBias
impl Eq for SliceBias
impl StructuralEq for SliceBias
impl StructuralPartialEq for SliceBias
Auto Trait Implementations
impl RefUnwindSafe for SliceBias
impl Send for SliceBias
impl Sync for SliceBias
impl Unpin for SliceBias
impl UnwindSafe for SliceBias
Blanket Implementations
sourceimpl<T> AsPhantomData for T where
T: ?Sized,
impl<T> AsPhantomData for T where
T: ?Sized,
sourcefn as_phantom(&self) -> PhantomData<Self>
fn as_phantom(&self) -> PhantomData<Self>
phantom
only.Gets a PhantomData<Self>
. Read more
sourcefn as_phantom_covariant(&self) -> PhantomData<fn() -> Self>
fn as_phantom_covariant(&self) -> PhantomData<fn() -> Self>
phantom
only.Gets a PhantomData<fn() -> Self>
, a covariant PhantomData
.
sourcefn as_phantom_contra(&self) -> PhantomData<fn(_: Self)>
fn as_phantom_contra(&self) -> PhantomData<fn(_: Self)>
phantom
only.Gets a PhantomData<fn(Self)>
, a contravariant PhantomData
.
sourcefn as_phantom_invariant(&self) -> PhantomData<fn(_: Self) -> Self>
fn as_phantom_invariant(&self) -> PhantomData<fn(_: Self) -> Self>
phantom
only.Gets a PhantomData<fn(Self) -> Self>
, an invariant PhantomData
.
sourceconst PHANTOM: PhantomData<Self> = PhantomData
const PHANTOM: PhantomData<Self> = PhantomData
phantom
only.Gets a PhantomData<Self>
. Read more
sourceconst PHANTOM_COVARIANT: PhantomData<fn() -> Self> = PhantomData
const PHANTOM_COVARIANT: PhantomData<fn() -> Self> = PhantomData
phantom
only.Constructs a PhantomData<fn() -> T>
, a covariant PhantomData
. Read more
sourceconst PHANTOM_CONTRA: PhantomData<fn(_: Self)> = PhantomData
const PHANTOM_CONTRA: PhantomData<fn(_: Self)> = PhantomData
phantom
only.Gets a PhantomData<fn(Self)>
, a contravariant PhantomData
. Read more
sourceconst PHANTOM_INVARIANT: PhantomData<fn(_: Self) -> Self> = PhantomData
const PHANTOM_INVARIANT: PhantomData<fn(_: Self) -> Self> = PhantomData
phantom
only.Gets a PhantomData<fn(Self) -> Self>
, an invariant PhantomData
. Read more
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> CallExt for T where
T: ?Sized,
impl<T> CallExt for T where
T: ?Sized,
sourcefn ref_call<P>(&self, params: P) -> Self::Returns where
Self: CallRef<P>,
fn ref_call<P>(&self, params: P) -> Self::Returns where
Self: CallRef<P>,
callable
only.For calling CallRef::ref_call_
,
with the ability to specify the types of the arguments.. Read more