1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
use crate::common::data::Data; use crate::core::extract::triop; /// An implementation of an if statement, as an FFI. /// Interesting idea, not sure if I'm going to keep it. pub fn if_choice(data: Data) -> Result<Data, String> { if let (Data::Boolean(condition), option_a, option_b) = triop(data) { let choice = if condition { option_a } else { option_b }; Ok(choice) } else { Err("\ Expected the condition to be a boolean.\n\ Note that Passerine does not have a notion of truthiness." .to_string() ) } }