intervalle

Crates.iointervalle
lib.rsintervalle
version0.2.1
sourcesrc
created_at2024-08-11 07:05:20.158569
updated_at2024-08-19 12:07:11.486664
descriptionParser for time range arguments
homepagehttps://github.com/spoutn1k/intervalle
repositoryhttps://github.com/spoutn1k/intervalle
max_upload_size
id1333053
size22,411
Jean-Baptiste Skutnik (spoutn1k)

documentation

README

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.

Usage

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(&timespec) {
        Ok(t) => println!("{t:?}"),
        Err(e) => eprintln!("{e}"),
    }
}
Commit count: 0

cargo fmt