Attempting numbers; tests are failing though :-(
This commit is contained in:
parent
9e3d4f155e
commit
aba541ed4d
3 changed files with 93 additions and 11 deletions
|
@ -2,8 +2,13 @@
|
|||
* Eryn Wells <eryn@erynwells.me>
|
||||
*/
|
||||
|
||||
struct Number {
|
||||
value: f64,
|
||||
#[derive(PartialEq, Debug)]
|
||||
pub struct Number { value: f64, }
|
||||
|
||||
impl Number {
|
||||
pub fn new(value: f64) -> Number {
|
||||
Number { value: value }
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
|
@ -14,6 +19,7 @@ pub struct NumberBuilder {
|
|||
exact: bool,
|
||||
radix: Radix,
|
||||
value: f64,
|
||||
point: u16,
|
||||
}
|
||||
|
||||
impl NumberBuilder {
|
||||
|
@ -22,6 +28,7 @@ impl NumberBuilder {
|
|||
exact: false,
|
||||
radix: Radix::Dec,
|
||||
value: 0.0,
|
||||
point: 0,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -37,7 +44,12 @@ impl NumberBuilder {
|
|||
|
||||
pub fn resolve(&self) -> Number {
|
||||
// TODO: Convert fields to Number type.
|
||||
Number { value: 0.0 }
|
||||
let value = if self.point == 0 {
|
||||
self.value
|
||||
} else {
|
||||
self.value / (self.point * 10) as f64
|
||||
};
|
||||
Number { value: value }
|
||||
}
|
||||
|
||||
pub fn extend_value<'a>(&'a mut self, digit: char) -> &'a mut Self {
|
||||
|
@ -50,6 +62,12 @@ impl NumberBuilder {
|
|||
self
|
||||
}
|
||||
|
||||
pub fn extend_decimal_value<'a>(&'a mut self, digit: char) -> &'a mut Self {
|
||||
self.extend_value(digit);
|
||||
self.point += 1;
|
||||
self
|
||||
}
|
||||
|
||||
pub fn radix_value(&self) -> u32 {
|
||||
self.radix.value() as u32
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue