Struct unic_char_range::CharRange
[−]
[src]
pub struct CharRange { pub low: char, pub high: char, }
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
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'] )
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'] )
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'] )
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'] )
fn all() -> CharRange
[src]
Construct a range over all characters.
impl CharRange
[src]
Collection-like fn
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'));
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
.
fn len(&self) -> usize
[src]
How many characters are in this range?
fn is_empty(&self) -> bool
[src]
Is this range empty?
fn iter(&self) -> CharIter
[src]
Create an iterator over this range.
Trait Implementations
impl From<CharIter> for CharRange
[src]
impl Copy for CharRange
[src]
impl Clone for CharRange
[src]
fn clone(&self) -> CharRange
[src]
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl Debug for CharRange
[src]
impl Eq for CharRange
[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]
Creates an iterator from a value. Read more