[−][src]Struct unic_char_range::CharRange
A range of unicode code points.
The most idiomatic way to construct this range is through the use of the chars!
macro:
#[macro_use] extern crate unic_char_range; use unic_char_range::CharRange; assert_eq!(chars!('a'..='z'), CharRange::closed('a', 'z')); assert_eq!(chars!('a'..'z'), CharRange::open_right('a', 'z')); assert_eq!(chars!(..), CharRange::all());
If constructed in reverse order, such that self.high
is ordered before self.low
,
the range is empty. If you want to iterate in decreasing order, use .iter().rev()
.
All empty ranges are considered equal no matter the internal state.
Fields
low: char
The lowest character in this range (inclusive).
high: char
The highest character in this range (inclusive).
Methods
impl CharRange
[src]
Constructors
pub fn closed(start: char, stop: char) -> CharRange
[src]
Construct a closed range of characters.
If stop
is ordered before start
, the resulting range will be empty.
Example
assert_eq!( CharRange::closed('a', 'd').iter().collect::<Vec<_>>(), vec!['a', 'b', 'c', 'd'] )
pub fn open_right(start: char, stop: char) -> CharRange
[src]
Construct a half open (right) range of characters.
Example
assert_eq!( CharRange::open_right('a', 'd').iter().collect::<Vec<_>>(), vec!['a', 'b', 'c'] )
pub fn open_left(start: char, stop: char) -> CharRange
[src]
Construct a half open (left) range of characters.
Example
assert_eq!( CharRange::open_left('a', 'd').iter().collect::<Vec<_>>(), vec!['b', 'c', 'd'] )
pub fn open(start: char, stop: char) -> CharRange
[src]
Construct a fully open range of characters.
Example
assert_eq!( CharRange::open('a', 'd').iter().collect::<Vec<_>>(), vec!['b', 'c'] )
pub fn all() -> CharRange
[src]
Construct a range over all characters.
impl CharRange
[src]
Collection-like fn
pub fn contains(&self, ch: char) -> bool
[src]
Does this range include a character?
Examples
assert!( CharRange::closed('a', 'g').contains('d')); assert!( ! CharRange::closed('a', 'g').contains('z')); assert!( ! CharRange:: open ('a', 'a').contains('a')); assert!( ! CharRange::closed('z', 'a').contains('g'));
pub fn cmp(&self, ch: char) -> Ordering
[src]
Determine the ordering of this range and a character.
Panics
Panics if the range is empty. This fn may be adjusted in the future to not panic
in optimized builds. Even if so, an empty range will never compare as Ordering::Equal
.
pub fn len(&self) -> usize
[src]
How many characters are in this range?
pub fn is_empty(&self) -> bool
[src]
Is this range empty?
pub fn iter(&self) -> CharIter
[src]
Create an iterator over this range.
Trait Implementations
impl Clone for CharRange
[src]
fn clone(&self) -> CharRange
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Copy for CharRange
[src]
impl Debug for CharRange
[src]
impl Eq for CharRange
[src]
impl From<CharIter> for CharRange
[src]
impl From<CharRange> for CharIter
[src]
impl IntoIterator for CharRange
[src]
type Item = char
The type of the elements being iterated over.
type IntoIter = CharIter
Which kind of iterator are we turning this into?
fn into_iter(self) -> CharIter
[src]
impl PartialEq<CharRange> for CharRange
[src]
impl StructuralEq for CharRange
[src]
Auto Trait Implementations
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<I> IntoIterator for I where
I: Iterator,
[src]
I: Iterator,
type Item = <I as Iterator>::Item
The type of the elements being iterated over.
type IntoIter = I
Which kind of iterator are we turning this into?
fn into_iter(self) -> I
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,