vieter/src/cron/expression.c.v

58 lines
1.1 KiB
V

module cron
#flag -I @VMODROOT/c
#flag @VMODROOT/c/parse.o
#flag @VMODROOT/c/expression.o
#include "expression.h"
pub struct C.cron_expression {
minutes &u8
hours &u8
days &u8
months &u8
minute_count u8
hour_count u8
day_count u8
month_count u8
}
pub type Expression = C.cron_expression
struct C.cron_simple_time {
year int
month int
day int
hour int
minute int
}
type SimpleTime = C.cron_simple_time
enum ParseError as u8 {
ok = 0
invalid_expression = 1
invalid_number = 2
out_of_range = 3
too_many_parts = 4
}
fn (e ParseError) str() string {
return match e {
.ok { '' }
.invalid_expression { 'Invalid expression' }
.invalid_number { 'Invalid number' }
.out_of_range { 'Out of range' }
.too_many_parts { 'Too many parts' }
}
}
fn C.ce_init() &C.cron_expression
fn C.ce_free(ce &C.cron_expression)
fn C.ce_next(out &C.cron_simple_time, ce &C.cron_expression, ref &C.cron_simple_time)
fn C.ce_next_from_now(out &C.cron_simple_time, ce &C.cron_expression)
fn C.ce_parse_expression(out &C.cron_expression, s &char) ParseError