Crates.io | intervalle |
lib.rs | intervalle |
version | 0.2.1 |
source | src |
created_at | 2024-08-11 07:05:20.158569 |
updated_at | 2024-08-19 12:07:11.486664 |
description | Parser for time range arguments |
homepage | https://github.com/spoutn1k/intervalle |
repository | https://github.com/spoutn1k/intervalle |
max_upload_size | |
id | 1333053 |
size | 22,411 |
intervalle
This small utility crate implements the format for the --since
argument of systemd
's journalctl
:
-S, --since=, -U, --until=
Start showing entries on or newer than the specified date, or on or
older than the specified date, respectively. Date specifications
should be of the format "2012-10-30 18:17:16". If the time part is
omitted, "00:00:00" is assumed. If only the seconds component is
omitted, ":00" is assumed. If the date component is omitted, the
current day is assumed. Alternatively the strings "yesterday",
"today", "tomorrow" are understood, which refer to 00:00:00 of the
day before the current day, the current day, or the day after the
current day, respectively. "now" refers to the current time.
Finally, relative times may be specified, prefixed with "-" or "+",
referring to times before or after the current time, respectively.
The crate defines a TimeSpec
enum that represents the time argument. You can parse a string with the TimeSpec::parse
function and let the program determine the point in time for 'now' (as the values today
, tomorrow
and yesterday
need) or use the TimeSpec::parse_with_anchor
method to supply your own time::PrimitiveDateTime
to use for calculations.
use since::TimeSpec;
fn main() {
let timespec = std::env::args().skip(1).next().unwrap();
match TimeSpec::parse(×pec) {
Ok(t) => println!("{t:?}"),
Err(e) => eprintln!("{e}"),
}
}