rl_lang/interpreter/stdlib/terminal/common.rs
1use crate::interpreter::{
2 stdlib::common::{extract_int, extract_number},
3 values::Value,
4};
5
6pub fn extract_byte(v: Value, name: &str) -> Result<u8, String> {
7 let byte = extract_number(v, name)?;
8 Ok(byte as u8)
9}
10
11pub fn extract_u16(v: Value, name: &str) -> Result<u16, String> {
12 let v = extract_int(v, name)?;
13 match v {
14 v if v >= 0 => Ok(v as u16),
15 v => Err(format!("{} must be >= 0, got {}", name, v)),
16 }
17}