use runestick::{ContextError, Module};
#[derive(Debug, Clone, Copy)]
struct Duration {
inner: tokio::time::Duration,
}
impl Duration {
fn from_secs(secs: u64) -> Self {
Self {
inner: tokio::time::Duration::from_secs(secs),
}
}
}
async fn delay_for(duration: &Duration) {
tokio::time::delay_for(duration.inner).await;
}
runestick::decl_external!(Duration);
pub fn module() -> Result<Module, ContextError> {
let mut module = Module::new(&["time"]);
module.function(&["Duration", "from_secs"], Duration::from_secs)?;
module.async_function(&["delay_for"], delay_for)?;
Ok(module)
}