pub struct LightId {
pub characters: Vec<char>,
pub min_length: usize,
/* private fields */
}
Fields§
§characters: Vec<char>
§min_length: usize
Implementations§
Source§impl LightId
impl LightId
Sourcepub fn new() -> Self
pub fn new() -> Self
Creates a new LightId
with the default configuration.
use light_id::LightId;
let mut generator = LightId::new();
Sourcepub fn from<S: AsRef<str>>(characters: S) -> Self
pub fn from<S: AsRef<str>>(characters: S) -> Self
Creates a new LightId
with a custom alphabet
use light_id::LightId;
let generator = LightId::from("abcdef");
If the provided characters
is equal to DEFAULT_CHARACTERS
, the expression can be replaced with
use light_id::LightId;
let generator = LightId::new();
Sourcepub fn skip(&mut self, n: usize) -> &mut Self
pub fn skip(&mut self, n: usize) -> &mut Self
Skip the first n
ids
use light_id::LightId;
let mut generator = LightId::new();
generator.skip(2);
assert_eq!("2", generator.current());
Sourcepub fn last<S: AsRef<str>>(&mut self, id: S) -> &mut Self
pub fn last<S: AsRef<str>>(&mut self, id: S) -> &mut Self
Skips the first ids until the provided id.
use light_id::LightId;
let mut generator = LightId::new();
generator.last("c");
assert_eq!("c", generator.current());
Sourcepub fn min(&mut self, n: usize) -> &mut Self
pub fn min(&mut self, n: usize) -> &mut Self
Sets the min length of the ids
use light_id::LightId;
let mut generator = LightId::new();
generator.min(6);
assert_eq!("000000", generator.current());
Sourcepub fn chars<S: AsRef<str>>(&mut self, characters: S) -> &mut Self
pub fn chars<S: AsRef<str>>(&mut self, characters: S) -> &mut Self
Sets the possible characters, in their order of importance (custom base)
use light_id::LightId;
let mut generator = LightId::new();
generator.chars("abc");
assert_eq!("a", generator.current());
Sourcepub fn clone(&self) -> Self
pub fn clone(&self) -> Self
Clone the current [LighId
].
use light_id::LightId;
let mut generator = LightId::new();
let mut generator2 = generator.clone();
Sourcepub fn count(&self) -> usize
pub fn count(&self) -> usize
Returns the current number of ids
use light_id::LightId;
let mut generator = LightId::new();
generator.increment();
assert_eq!(1, generator.count());
Sourcepub fn decrement(&mut self) -> &mut Self
pub fn decrement(&mut self) -> &mut Self
Decrements the current id.
Internally uses an alias to LightId::decrement_by
use light_id::LightId;
let mut generator = LightId::new();
generator.increment();
generator.decrement();
assert_eq!("0", generator.current());
Sourcepub fn decrement_by(&mut self, count: usize) -> &mut Self
pub fn decrement_by(&mut self, count: usize) -> &mut Self
Decrements the current id with a given factor
use light_id::LightId;
let mut generator = LightId::new();
generator.increment_by(10);
generator.decrement_by(10);
assert_eq!("0", generator.current());
Sourcepub fn increment(&mut self) -> &mut Self
pub fn increment(&mut self) -> &mut Self
Increments the current id by one.
Internally uses an alias to LightId::increment_by
use light_id::LightId;
let mut generator = LightId::new();
generator.increment();
assert_eq!("1", generator.current());
Sourcepub fn increment_by(&mut self, count: usize) -> &mut Self
pub fn increment_by(&mut self, count: usize) -> &mut Self
Increments the current id with a given factor
use light_id::LightId;
let mut generator = LightId::new();
generator.increment_by(10);
assert_eq!("a", generator.current());
Sourcepub fn next(&mut self) -> String
pub fn next(&mut self) -> String
Increments the id by one and returns it.
use light_id::LightId;
let mut generator = LightId::new();
assert_eq!("0", generator.next());
assert_eq!("1", generator.next());
assert_eq!("2", generator.next());
Internally uses an alias to LightId::current
and LightId::increment
use light_id::LightId;
let mut generator = LightId::new();
let value = generator.current();
generator.increment();
assert_eq!("0", value);
Sourcepub fn current(&self) -> String
pub fn current(&self) -> String
Returns the current id.
use light_id::LightId;
let mut generator = LightId::new();
assert_eq!("0", generator.current());
Sourcepub fn len(&self) -> usize
pub fn len(&self) -> usize
Returns the length of the current id.
use light_id::LightId;
let mut generator = LightId::new();
assert_eq!(1, generator.len());
generator.increment_by(100);
assert_eq!(2, generator.len());