cljrs-runtime 0.1.247

clojurust runtime: environment, builtins, tree-walking interpreter, and tiered evaluation
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
use cljrs_value::{Value, ValueError, ValueResult};
use num_traits::ToPrimitive;
use std::time::SystemTime;

pub(crate) fn builtin_nanotime(_args: &[Value]) -> ValueResult<Value> {
    match SystemTime::now().duration_since(SystemTime::UNIX_EPOCH) {
        Ok(nanos) => Ok(Value::Long(
            nanos
                .as_nanos()
                .to_i64()
                .ok_or_else(|| ValueError::OutOfRange)?,
        )),
        Err(e) => Err(ValueError::Other(format!("{}", e))),
    }
}