Skip to main content

ferrijs_std/utils/
string.rs

1use rquickjs::{Coerced, Result, Value};
2
3#[inline]
4pub fn get_string(value: &Value<'_>) -> Result<Option<String>> {
5    if let Some(val) = value.as_string() {
6        let string = val.to_string()?;
7        return Ok(Some(string));
8    }
9    Ok(None)
10}
11
12pub fn get_coerced_string(value: &Value<'_>) -> Option<String> {
13    if let Ok(val) = value.get::<Coerced<String>>() {
14        return Some(val.0);
15    };
16    None
17}
18
19pub fn get_coerced_defined_string<'js>(value: &Option<Value<'js>>) -> Option<String> {
20    if let Some(value) = value {
21        if !value.is_undefined() {
22            return get_coerced_string(value);
23        }
24    };
25    None
26}