novy-syndicate/src/gen/timer.ts

148 lines
6.1 KiB
TypeScript

import * as _ from "@preserves/core";
export const $absolute = Symbol.for("absolute");
export const $clear = Symbol.for("clear");
export const $relative = Symbol.for("relative");
export const __lit0 = Symbol.for("set-timer");
export const __lit1 = Symbol.for("timer-expired");
export const __lit5 = Symbol.for("later-than");
export type SetTimer<_embedded = _.GenericEmbedded> = {"label": _.Value<_embedded>, "msecs": number, "kind": TimerKind};
export type TimerExpired<_embedded = _.GenericEmbedded> = {"label": _.Value<_embedded>, "msecs": number};
export type TimerKind = ({"_variant": "relative"} | {"_variant": "absolute"} | {"_variant": "clear"});
export type LaterThan = {"msecs": number};
export function SetTimer<_embedded = _.GenericEmbedded>(
{label, msecs, kind}: {label: _.Value<_embedded>, msecs: number, kind: TimerKind}
): SetTimer<_embedded> {return {"label": label, "msecs": msecs, "kind": kind};}
export function TimerExpired<_embedded = _.GenericEmbedded>({label, msecs}: {label: _.Value<_embedded>, msecs: number}): TimerExpired<_embedded> {return {"label": label, "msecs": msecs};}
export namespace TimerKind {
export function relative(): TimerKind {return {"_variant": "relative"};};
export function absolute(): TimerKind {return {"_variant": "absolute"};};
export function clear(): TimerKind {return {"_variant": "clear"};};
}
export function LaterThan(msecs: number): LaterThan {return {"msecs": msecs};}
export function asSetTimer<_embedded = _.GenericEmbedded>(v: _.Value<_embedded>): SetTimer<_embedded> {
let result = toSetTimer(v);
if (result === void 0) throw new TypeError(`Invalid SetTimer: ${_.stringify(v)}`);
return result;
}
export function toSetTimer<_embedded = _.GenericEmbedded>(v: _.Value<_embedded>): undefined | SetTimer<_embedded> {
let result: undefined | SetTimer<_embedded>;
if (_.Record.isRecord<_.Value<_embedded>, _.Tuple<_.Value<_embedded>>, _embedded>(v)) {
let _tmp0: (null) | undefined;
_tmp0 = _.is(v.label, __lit0) ? null : void 0;
if (_tmp0 !== void 0) {
let _tmp1: (_.Value<_embedded>) | undefined;
_tmp1 = v[0];
if (_tmp1 !== void 0) {
let _tmp2: (number) | undefined;
_tmp2 = _.Float.isDouble(v[1]) ? v[1].value : void 0;
if (_tmp2 !== void 0) {
let _tmp3: (TimerKind) | undefined;
_tmp3 = toTimerKind(v[2]);
if (_tmp3 !== void 0) {result = {"label": _tmp1, "msecs": _tmp2, "kind": _tmp3};};
};
};
};
};
return result;
}
export function fromSetTimer<_embedded = _.GenericEmbedded>(_v: SetTimer<_embedded>): _.Value<_embedded> {
return _.Record(
__lit0,
[_v["label"], _.Double(_v["msecs"]), fromTimerKind<_embedded>(_v["kind"])]
);
}
export function asTimerExpired<_embedded = _.GenericEmbedded>(v: _.Value<_embedded>): TimerExpired<_embedded> {
let result = toTimerExpired(v);
if (result === void 0) throw new TypeError(`Invalid TimerExpired: ${_.stringify(v)}`);
return result;
}
export function toTimerExpired<_embedded = _.GenericEmbedded>(v: _.Value<_embedded>): undefined | TimerExpired<_embedded> {
let result: undefined | TimerExpired<_embedded>;
if (_.Record.isRecord<_.Value<_embedded>, _.Tuple<_.Value<_embedded>>, _embedded>(v)) {
let _tmp0: (null) | undefined;
_tmp0 = _.is(v.label, __lit1) ? null : void 0;
if (_tmp0 !== void 0) {
let _tmp1: (_.Value<_embedded>) | undefined;
_tmp1 = v[0];
if (_tmp1 !== void 0) {
let _tmp2: (number) | undefined;
_tmp2 = _.Float.isDouble(v[1]) ? v[1].value : void 0;
if (_tmp2 !== void 0) {result = {"label": _tmp1, "msecs": _tmp2};};
};
};
};
return result;
}
export function fromTimerExpired<_embedded = _.GenericEmbedded>(_v: TimerExpired<_embedded>): _.Value<_embedded> {return _.Record(__lit1, [_v["label"], _.Double(_v["msecs"])]);}
export function asTimerKind<_embedded = _.GenericEmbedded>(v: _.Value<_embedded>): TimerKind {
let result = toTimerKind(v);
if (result === void 0) throw new TypeError(`Invalid TimerKind: ${_.stringify(v)}`);
return result;
}
export function toTimerKind<_embedded = _.GenericEmbedded>(v: _.Value<_embedded>): undefined | TimerKind {
let _tmp0: (null) | undefined;
let result: undefined | TimerKind;
_tmp0 = _.is(v, $relative) ? null : void 0;
if (_tmp0 !== void 0) {result = {"_variant": "relative"};};
if (result === void 0) {
let _tmp1: (null) | undefined;
_tmp1 = _.is(v, $absolute) ? null : void 0;
if (_tmp1 !== void 0) {result = {"_variant": "absolute"};};
if (result === void 0) {
let _tmp2: (null) | undefined;
_tmp2 = _.is(v, $clear) ? null : void 0;
if (_tmp2 !== void 0) {result = {"_variant": "clear"};};
};
};
return result;
}
export function fromTimerKind<_embedded = _.GenericEmbedded>(_v: TimerKind): _.Value<_embedded> {
switch (_v._variant) {
case "relative": {return $relative;};
case "absolute": {return $absolute;};
case "clear": {return $clear;};
};
}
export function asLaterThan<_embedded = _.GenericEmbedded>(v: _.Value<_embedded>): LaterThan {
let result = toLaterThan(v);
if (result === void 0) throw new TypeError(`Invalid LaterThan: ${_.stringify(v)}`);
return result;
}
export function toLaterThan<_embedded = _.GenericEmbedded>(v: _.Value<_embedded>): undefined | LaterThan {
let result: undefined | LaterThan;
if (_.Record.isRecord<_.Value<_embedded>, _.Tuple<_.Value<_embedded>>, _embedded>(v)) {
let _tmp0: (null) | undefined;
_tmp0 = _.is(v.label, __lit5) ? null : void 0;
if (_tmp0 !== void 0) {
let _tmp1: (number) | undefined;
_tmp1 = _.Float.isDouble(v[0]) ? v[0].value : void 0;
if (_tmp1 !== void 0) {result = {"msecs": _tmp1};};
};
};
return result;
}
export function fromLaterThan<_embedded = _.GenericEmbedded>(_v: LaterThan): _.Value<_embedded> {return _.Record(__lit5, [_.Double(_v["msecs"])]);}