#[repr(transparent)]pub struct CharOffset(pub usize);Expand description
A character offset (Unicode scalar value index).
Use this newtype to prevent accidentally passing byte offsets where character offsets are expected. This is the most common source of Unicode-related bugs in NLP code.
§Example
use anno::offset::CharOffset;
let text = "日本語"; // 3 chars, 9 bytes
let pos = CharOffset(1); // Second character (本)
assert_eq!(pos.0, 1);Tuple Fields§
§0: usizeImplementations§
Trait Implementations§
Source§impl Clone for CharOffset
impl Clone for CharOffset
Source§fn clone(&self) -> CharOffset
fn clone(&self) -> CharOffset
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for CharOffset
impl Debug for CharOffset
Source§impl<'de> Deserialize<'de> for CharOffset
impl<'de> Deserialize<'de> for CharOffset
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl From<CharOffset> for usize
impl From<CharOffset> for usize
Source§fn from(offset: CharOffset) -> Self
fn from(offset: CharOffset) -> Self
Converts to this type from the input type.
Source§impl From<usize> for CharOffset
impl From<usize> for CharOffset
Source§impl Hash for CharOffset
impl Hash for CharOffset
Source§impl Ord for CharOffset
impl Ord for CharOffset
Source§fn cmp(&self, other: &CharOffset) -> Ordering
fn cmp(&self, other: &CharOffset) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl PartialEq for CharOffset
impl PartialEq for CharOffset
Source§impl PartialOrd for CharOffset
impl PartialOrd for CharOffset
Source§impl Serialize for CharOffset
impl Serialize for CharOffset
impl Copy for CharOffset
impl Eq for CharOffset
impl StructuralPartialEq for CharOffset
Auto Trait Implementations§
impl Freeze for CharOffset
impl RefUnwindSafe for CharOffset
impl Send for CharOffset
impl Sync for CharOffset
impl Unpin for CharOffset
impl UnsafeUnpin for CharOffset
impl UnwindSafe for CharOffset
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more