Hare API reference

crontab+x86_64 +linux

Index

Types

type sprocket = struct {
	months: []int,
	weeks: []int,
	days: []int,
	dows: []int,
	hours: []int,
	minutes: []int,
	seconds: []int,
};

// Undocumented types:
type asterisk = void;
type crontab = struct {
	entries: []entry,
	user: str,
};
type entry = struct {
	minute: []token,
	hour: []token,
	day_of_month: []token,
	month_of_year: []token,
	day_of_week: []token,
	cmd: str,
	stdin: str,
	user: str,
	next: (void | date::date),
};
type error = (invalid | void);
type range = (int, int);
type token = (asterisk | range | int);

Errors

// Undocumented Errors:
type invalid = !void;

Functions

fn next(d: date::date, zflag: date::zflag, sprock: sprocket) date::date;
fn strelement(elem: []token) (str | nomem);
fn strentry(ent: entry) (str | nomem);
fn strtoken(tok: token) (str | nomem);

// Undocumented functions:
fn finish(crontab: *crontab) void;
fn load(src: io::handle, user: str) (crontab | invalid | io::error | utf8::invalid | nomem);
fn read_line(line: str, user: str) (entry | invalid | nomem);
fn realize_entry(min: date::date, entry: *entry) (void | nomem);
fn strerror(err: error) str;

Types

type sprocket[permalink]

type sprocket = struct {
	months: []int,
	weeks: []int,
	days: []int,
	dows: []int,
	hours: []int,
	minutes: []int,
	seconds: []int,
};

Represents a ruleset to find corresponding moments in a calendar. Used for chronologicial arithmetic. The components are then mapped all together to compute every acceptable date units.

type asterisk[permalink]

Show undocumented member
type asterisk = void;

type crontab[permalink]

Show undocumented member
type crontab = struct {
	entries: []entry,
	user: str,
};

type entry[permalink]

Show undocumented member
type entry = struct {
	minute: []token,
	hour: []token,
	day_of_month: []token,
	month_of_year: []token,
	day_of_week: []token,
	cmd: str,
	stdin: str,
	user: str,
	next: (void | date::date),
};

type error[permalink]

Show undocumented member
type error = (invalid | void);

type range[permalink]

Show undocumented member
type range = (int, int);

type token[permalink]

Show undocumented member
type token = (asterisk | range | int);

Errors

type invalid[permalink]

Show undocumented member
type invalid = !void;

Functions

fn next[permalink]

fn next(d: date::date, zflag: date::zflag, sprock: sprocket) date::date;

Return the next date after this one that match the sprocket ruleset.

// The next 50th minute
let dest = date::next(
	start, // 2024-03-20 08:46:23
	date::sprocket { // becomes: 2024-03-20 08:50:00
		minutes = [50],
		...
	},
);
// The next monday 29 february at 08:40
let dest = date::next(
	start, // 2024-03-20 08:46:23
	date::sprocket { // becomes: 2044-02-29 08:40:00
		months = [2],
		days = [29],
		dows = [0],
		hours = [8],
		minutes = [40],
		...
	},
);

fn strelement[permalink]

fn strelement(elem: []token) (str | nomem);

The caller must free the return value.

fn strentry[permalink]

fn strentry(ent: entry) (str | nomem);

The caller must free the return value.

fn strtoken[permalink]

fn strtoken(tok: token) (str | nomem);

The caller must free the return value.

fn finish[permalink]

Show undocumented member
fn finish(crontab: *crontab) void;

fn load[permalink]

Show undocumented member
fn load(src: io::handle, user: str) (crontab | invalid | io::error | utf8::invalid | nomem);

fn read_line[permalink]

Show undocumented member
fn read_line(line: str, user: str) (entry | invalid | nomem);

fn realize_entry[permalink]

Show undocumented member
fn realize_entry(min: date::date, entry: *entry) (void | nomem);

fn strerror[permalink]

Show undocumented member
fn strerror(err: error) str;