Added state 64 bit numeric value support #39

This commit is contained in:
sagie gur ari 2020-01-06 18:29:06 +00:00
parent 094a8f8b2d
commit 7942425e23
5 changed files with 14 additions and 6 deletions

View file

@ -2,6 +2,7 @@
### v0.1.5
* Added state 64 bit numeric value support #39
* Changed standard namespace to std from sdk #34
* New read command #33
* New hostname command #18

View file

@ -24,6 +24,10 @@ pub enum StateValue {
Number32Bit(i32),
/// unsigned number
UnsignedNumber32Bit(u32),
/// signed number
Number64Bit(i64),
/// unsigned number
UnsignedNumber64Bit(u64),
/// textual value
String(String),
/// list

View file

@ -43,7 +43,7 @@ impl Command for CommandImpl {
if arguments.len() < 2 {
CommandResult::Error("Invalid arguments provided.".to_string())
} else {
let start: i32 = match arguments[0].parse() {
let start: i64 = match arguments[0].parse() {
Ok(value) => value,
Err(_) => {
return CommandResult::Error(
@ -52,7 +52,7 @@ impl Command for CommandImpl {
}
};
let end: i32 = match arguments[1].parse() {
let end: i64 = match arguments[1].parse() {
Ok(value) => value,
Err(_) => {
return CommandResult::Error(
@ -65,7 +65,7 @@ impl Command for CommandImpl {
CommandResult::Error("Invalid arguments provided, range start value cannot be bigger than the range end value.".to_string())
} else {
let array: Vec<_> = (start..end)
.map(|value| StateValue::Number32Bit(value))
.map(|value| StateValue::Number64Bit(value))
.collect();
let key = put_handle(state, StateValue::List(array));

View file

@ -65,7 +65,7 @@ fn run_positive() {
for index in 5..10 {
match list.remove(0) {
StateValue::Number32Bit(value) => assert_eq!(value, index),
StateValue::Number64Bit(value) => assert_eq!(value, index),
_ => panic!("Invalid handle value."),
};
}
@ -90,7 +90,7 @@ fn run_negative() {
for index in -5..10 {
match list.remove(0) {
StateValue::Number32Bit(value) => assert_eq!(value, index),
StateValue::Number64Bit(value) => assert_eq!(value, index),
_ => panic!("Invalid handle value."),
};
}

View file

@ -215,8 +215,11 @@ fn get_next_iteration(
StateValue::UnsignedNumber(ref value) => Some(value.to_string()),
StateValue::Number32Bit(ref value) => Some(value.to_string()),
StateValue::UnsignedNumber32Bit(ref value) => Some(value.to_string()),
StateValue::Number64Bit(ref value) => Some(value.to_string()),
StateValue::UnsignedNumber64Bit(ref value) => Some(value.to_string()),
StateValue::String(ref value) => Some(value.to_string()),
_ => None,
StateValue::List(_) => None,
StateValue::SubState(_) => None,
}
} else {
None