Skip to main content

rl_lang/interpreter/stdlib/time/
mod.rs

1//! `std::time` - Unix timestamp functions and time formatting.
2//!
3//! All timestamps are Unix seconds as `i64`.
4//! `format_time` uses a minimal strftime-like pattern (`%Y`, `%m`, `%d`, `%H`, `%M`, `%S`).
5//! `time_parts` returns `[year, month, day, hour, minute, second]` as an `arr[int]`.
6//! `time_add` and `time_diff` are trivial arithmetic helpers - a proper time type is planned.
7
8mod format_time;
9mod now;
10mod time_arith;
11mod time_parts;
12
13use crate::interpreter::native::Module;
14
15pub const KEYWORDS: &[&str] = &[
16    "time_now",
17    "time_now_ms",
18    "format_time",
19    "format_date_str",
20    "format_time_str",
21    "time_add",
22    "time_diff",
23    "time_parts",
24];
25
26pub fn module() -> Module {
27    Module::new("time")
28        .with_function("time_now", now::now)
29        .with_function("time_now_ms", now::now_ms)
30        .with_function("format_time", format_time::format_time)
31        .with_function("format_date_str", format_time::date_str)
32        .with_function("format_time_str", format_time::time_str)
33        .with_function("time_add", time_arith::time_add)
34        .with_function("time_diff", time_arith::time_diff)
35        .with_function("time_parts", time_parts::time_parts)
36}