Skip to main content

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}