use core::str;
pub struct CustomObjectFunctions;
impl CustomObjectFunctions {
pub fn get_next_arg<'a>(args: &'a [&'a [u8]], idx: &mut usize) -> Option<&'a [u8]> {
if *idx < args.len() {
let res = args[*idx];
*idx += 1;
Some(res)
} else {
None
}
}
pub fn get_next_string<'a>(args: &'a [&'a [u8]], idx: &mut usize) -> Option<&'a str> {
Self::get_next_arg(args, idx).and_then(|b| str::from_utf8(b).ok())
}
pub fn get_first_arg<'a>(args: &'a [&'a [u8]]) -> Option<&'a [u8]> {
args.first().copied()
}
pub fn abort_with_wrong_number_of_arguments(cmd: &str) -> String {
format!("-ERR wrong number of arguments for '{cmd}' command\r\n")
}
pub fn abort_with_error_message(msg: &str) -> String {
format!("-ERR {msg}\r\n")
}
pub fn abort_with_syntax_error() -> String {
"-ERR syntax error\r\n".to_string()
}
}