use crate::script::*;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct ScriptCastPolicy;
#[export_module]
#[allow(non_snake_case, non_upper_case_globals)]
pub(crate) mod CastPolicyModule {
use super::{CastPolicy, value_arg};
use crate::value::literal::TokenLiteral;
pub const Error: CastPolicy = CastPolicy::Error;
pub const Skip: CastPolicy = CastPolicy::Skip;
#[rhai_fn(return_raw)]
pub fn Default(
ctx: NativeCallContext,
value: Dynamic,
) -> Result<CastPolicy, Box<rhai::EvalAltResult>> {
Ok(CastPolicy::Default(value_arg(&ctx, value)?))
}
#[rhai_fn(global, name = "to_string", name = "to_debug", pure)]
pub fn to_string(policy: &mut CastPolicy) -> String {
policy.token_literal()
}
}