use crate::api::SharedObject;
use rhai::plugin::{
Dynamic, FnAccess, FnNamespace, Module, NativeCallContext, PluginFunction, RhaiResult, TypeId,
};
pub use net::*;
#[rhai::plugin::export_module]
mod net {
use vsmtp_plugin_vsl::objects::constructors::rg4;
#[must_use]
#[rhai_fn(name = "rg_192")]
pub fn rg_192() -> SharedObject {
rg4("192.168.0.0/16").expect("valid range")
}
#[must_use]
#[rhai_fn(name = "rg_172")]
pub fn rg_172() -> SharedObject {
rg4("172.16.0.0/12").expect("valid range")
}
#[must_use]
#[rhai_fn(name = "rg_10")]
pub fn rg_10() -> SharedObject {
rg4("10.0.0.0/8").expect("valid range")
}
#[must_use]
#[rhai_fn(name = "non_routable")]
pub fn non_routable() -> rhai::Array {
rhai::Array::from_iter([
rhai::Dynamic::from(rg_192()),
rhai::Dynamic::from(rg_172()),
rhai::Dynamic::from(rg_10()),
])
}
}