Struct base_custom::BaseCustom
[−]
[src]
pub struct BaseCustom<T> { pub base: u64, // some fields omitted }
The BaseCustom struct holds the information to perform number conversions
via the gen
and decimal
methods.
A new instance of BaseCustom can be created with either
BaseCustom::<char>::new(Vec<char>)
BaseCustom::<char>::from_ordinal_range(Range)
BaseCustom::<String>::new(String, Option<char>)
If you are going to provide a delimiter you need to use the <String>
implementation.
A delimiter is optional.
The primitives for BaseCustom get built from the provides characters or string groups and conversion methods are available to use then. String groupings will be single character strings if no delimiter is given, otherwise they may be strings of any length split only by the delimiter provided.
Fields
base: u64
The size of the base
Methods
impl BaseCustom<char>
[src]
fn new(chars: Vec<char>) -> BaseCustom<char>
'new' creates a new BaseCustom instance and propogates the values for converting numeric bases.
new
for BaseCustom<char>
requires a Vec<char>
as its parameters and units
for measuring the custom numeric base will only be one character long each.
fn gen(&self, input_val: u64) -> String
gen
returns a String computed from the character mapping and
positional values the given u64 parameter evalutes to for your
custom base
Example
use base_custom::BaseCustom; let base2 = BaseCustom::<char>::new(vec!['0','1']); assert_eq!(base2.gen(3), "11");
Output
"11"
fn char(&self, input_val: usize) -> Option<char>
char
returns a char straight from the character mapping.
decimal value must be within character range for a Some result.
Example
use base_custom::BaseCustom; let base10 = BaseCustom::<char>::new("0123456789".chars().collect()); assert_eq!(base10.char(9), Some('9'));
Output
'9'
fn decimal<S>(&self, input_val: S) -> u64 where S: Into<String>
decimal
returns a u64 value on computed from the units that form
the custom base.
Example
use base_custom::BaseCustom; let base2 = BaseCustom::<char>::new(vec!['0','1']); assert_eq!(base2.decimal("00011"), 3);
Output
3
fn zero(&self) -> &char
Returns the zero value of your custom base
fn one(&self) -> &char
Returns the one value of your custom base
fn nth(&self, pos: usize) -> Option<&char>
Returns the nth value of your custom base
Like most indexing operations, the count starts from zero, so nth(0) returns the first value, nth(1) the second, and so on.
fn from_ordinal_range(range: Range<u32>) -> BaseCustom<char>
Create a custom numeric base from an ascii range of ordinal values
This method currently restricts the ascii character range of the
95 typical characters starting from 32 and ending with 127. If you'd
like to use characters outside of this range please use the new
method.
impl BaseCustom<String>
[src]
fn new<S>(chars: S, delim: Option<char>) -> BaseCustom<String> where S: Into<String>
'new' creates a new BaseCustom instance and propogates the values for converting numeric bases.
new
for BaseCustom<String>
requires a String
as its first parameter and units
for measuring the custom numeric base can be one character long, or many in length.
The second parameter is of Option<char>
is a delimiter option for determining whether
to split the string into single character length strings or possibly multiple length
if the delimiter is partitioning the string in such a way.
fn gen(&self, input_val: u64) -> String
gen
returns a String computed from the character mapping and
positional values the given u64 parameter evalutes to for your
custom base
Example
use base_custom::BaseCustom; let base2 = BaseCustom::<String>::new("01", None); assert_eq!(base2.gen(3), "11");
Output
"11"
fn decimal<S>(&self, input_val: S) -> u64 where S: Into<String>
decimal
returns a u64 value on computed from the units that form
the custom base.
Example
use base_custom::BaseCustom; let base2 = BaseCustom::<String>::new("01", None); assert_eq!(base2.decimal("00011"), 3);
Output
3
fn zero(&self) -> &str
Returns the zero value of your custom base
fn one(&self) -> &str
Returns the one value of your custom base
fn nth(&self, pos: usize) -> Option<&str>
Returns the nth value of your custom base
Like most indexing operations, the count starts from zero, so nth(0) returns the first value, nth(1) the second, and so on.
Trait Implementations
impl<T: Clone> Clone for BaseCustom<T>
[src]
fn clone(&self) -> BaseCustom<T>
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0
Performs copy-assignment from source
. Read more
impl Debug for BaseCustom<char>
[src]
impl Debug for BaseCustom<String>
[src]
impl PartialEq for BaseCustom<char>
[src]
fn eq(&self, other: &BaseCustom<char>) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.