284 lines
11 KiB
TypeScript
284 lines
11 KiB
TypeScript
import * as _ from "@preserves/core";
|
|
|
|
export const $Present = _.Symbol.for("Present");
|
|
export const $Says = _.Symbol.for("Says");
|
|
export const $Status = _.Symbol.for("Status");
|
|
export const $away = _.Symbol.for("away");
|
|
export const $here = _.Symbol.for("here");
|
|
|
|
let __schema: _.Value | null = null;
|
|
|
|
export function _schema() {
|
|
if (__schema === null) {
|
|
__schema = _.decode<_.GenericEmbedded>(_.Bytes.fromHex("b4b306736368656d61b7b30776657273696f6eb00101b30b646566696e6974696f6e73b7b30453617973b4b303726563b4b3036c6974b3045361797384b4b3057475706c65b5b4b3056e616d6564b30377686fb4b30461746f6db306537472696e678484b4b3056e616d6564b30477686174b4b30461746f6db306537472696e678484848484b306537461747573b4b3026f72b5b5b10468657265b4b3036c6974b304686572658484b5b10461776179b4b303726563b4b3036c6974b3046177617984b4b3057475706c65b5b4b3056e616d6564b30573696e6365b4b303726566b584b30954696d655374616d708484848484848484b30750726573656e74b4b303726563b4b3036c6974b30750726573656e7484b4b3057475706c65b5b4b3056e616d6564b308757365726e616d65b4b30461746f6db306537472696e678484848484b30954696d655374616d70b4b30461746f6db306537472696e6784b30a55736572537461747573b4b303726563b4b3036c6974b30653746174757384b4b3057475706c65b5b4b3056e616d6564b308757365726e616d65b4b30461746f6db306537472696e678484b4b3056e616d6564b306737461747573b4b303726566b584b306537461747573848484848484b30c656d62656464656454797065808484"));
|
|
};
|
|
return __schema;
|
|
}
|
|
|
|
export const _imports = {}
|
|
|
|
|
|
export type Present = {"username": string};
|
|
|
|
export type Says = {"who": string, "what": string};
|
|
|
|
export type UserStatus = {"username": string, "status": Status};
|
|
|
|
export type Status = ({"_variant": "here"} | {"_variant": "away", "since": TimeStamp});
|
|
|
|
export type TimeStamp = string;
|
|
|
|
|
|
export function Present(username: string): (
|
|
Present &
|
|
{__as_preserve__<_embedded = _.GenericEmbedded>(): _.Value<_embedded>}
|
|
) {return {"username": username, __as_preserve__() {return fromPresent(this);}};}
|
|
|
|
Present.schema = function () {
|
|
return {schema: _schema(), imports: _imports, definitionName: _.Symbol.for("Present")};
|
|
}
|
|
|
|
export function Says({who, what}: {who: string, what: string}): (Says & {__as_preserve__<_embedded = _.GenericEmbedded>(): _.Value<_embedded>}) {return {"who": who, "what": what, __as_preserve__() {return fromSays(this);}};}
|
|
|
|
Says.schema = function () {
|
|
return {schema: _schema(), imports: _imports, definitionName: _.Symbol.for("Says")};
|
|
}
|
|
|
|
export function UserStatus({username, status}: {username: string, status: Status}): (
|
|
UserStatus &
|
|
{__as_preserve__<_embedded = _.GenericEmbedded>(): _.Value<_embedded>}
|
|
) {
|
|
return {
|
|
"username": username,
|
|
"status": status,
|
|
__as_preserve__() {return fromUserStatus(this);}
|
|
};
|
|
}
|
|
|
|
UserStatus.schema = function () {
|
|
return {
|
|
schema: _schema(),
|
|
imports: _imports,
|
|
definitionName: _.Symbol.for("UserStatus")
|
|
};
|
|
}
|
|
|
|
export namespace Status {
|
|
export function here(): (
|
|
Status &
|
|
{__as_preserve__<_embedded = _.GenericEmbedded>(): _.Value<_embedded>}
|
|
) {return {"_variant": "here", __as_preserve__() {return fromStatus(this);}};};
|
|
here.schema = function () {
|
|
return {
|
|
schema: _schema(),
|
|
imports: _imports,
|
|
definitionName: _.Symbol.for("Status"),
|
|
variant: _.Symbol.for("here")
|
|
};
|
|
};
|
|
export function away(since: TimeStamp): (
|
|
Status &
|
|
{__as_preserve__<_embedded = _.GenericEmbedded>(): _.Value<_embedded>}
|
|
) {
|
|
return {
|
|
"_variant": "away",
|
|
"since": since,
|
|
__as_preserve__() {return fromStatus(this);}
|
|
};
|
|
};
|
|
away.schema = function () {
|
|
return {
|
|
schema: _schema(),
|
|
imports: _imports,
|
|
definitionName: _.Symbol.for("Status"),
|
|
variant: _.Symbol.for("away")
|
|
};
|
|
};
|
|
}
|
|
|
|
export function TimeStamp(value: string): TimeStamp {return value;}
|
|
|
|
TimeStamp.schema = function () {
|
|
return {
|
|
schema: _schema(),
|
|
imports: _imports,
|
|
definitionName: _.Symbol.for("TimeStamp")
|
|
};
|
|
}
|
|
|
|
export function asPresent<_embedded = _.GenericEmbedded>(v: _.Value<_embedded>): (
|
|
Present &
|
|
{__as_preserve__<_embedded = _.GenericEmbedded>(): _.Value<_embedded>}
|
|
) {
|
|
let result = toPresent(v);
|
|
if (result === void 0) throw new TypeError(`Invalid Present: ${_.stringify(v)}`);
|
|
return result;
|
|
}
|
|
|
|
export function toPresent<_embedded = _.GenericEmbedded>(v: _.Value<_embedded>): undefined | (
|
|
Present &
|
|
{__as_preserve__<_embedded = _.GenericEmbedded>(): _.Value<_embedded>}
|
|
) {
|
|
let result: undefined | (
|
|
Present &
|
|
{__as_preserve__<_embedded = _.GenericEmbedded>(): _.Value<_embedded>}
|
|
);
|
|
if (_.Record.isRecord<_.Value<_embedded>, _.Tuple<_.Value<_embedded>>, _embedded>(v)) {
|
|
let _tmp0: ({}) | undefined;
|
|
_tmp0 = _.is(v.label, $Present) ? {} : void 0;
|
|
if (_tmp0 !== void 0) {
|
|
let _tmp1: (string) | undefined;
|
|
_tmp1 = typeof v[0] === 'string' ? v[0] : void 0;
|
|
if (_tmp1 !== void 0) {result = {"username": _tmp1, __as_preserve__() {return fromPresent(this);}};};
|
|
};
|
|
};
|
|
return result;
|
|
}
|
|
|
|
Present.__from_preserve__ = toPresent;
|
|
|
|
export function fromPresent<_embedded = _.GenericEmbedded>(_v: Present): _.Value<_embedded> {return _.Record($Present, [_v["username"]]);}
|
|
|
|
export function asSays<_embedded = _.GenericEmbedded>(v: _.Value<_embedded>): (Says & {__as_preserve__<_embedded = _.GenericEmbedded>(): _.Value<_embedded>}) {
|
|
let result = toSays(v);
|
|
if (result === void 0) throw new TypeError(`Invalid Says: ${_.stringify(v)}`);
|
|
return result;
|
|
}
|
|
|
|
export function toSays<_embedded = _.GenericEmbedded>(v: _.Value<_embedded>): undefined | (Says & {__as_preserve__<_embedded = _.GenericEmbedded>(): _.Value<_embedded>}) {
|
|
let result: undefined | (Says & {__as_preserve__<_embedded = _.GenericEmbedded>(): _.Value<_embedded>});
|
|
if (_.Record.isRecord<_.Value<_embedded>, _.Tuple<_.Value<_embedded>>, _embedded>(v)) {
|
|
let _tmp0: ({}) | undefined;
|
|
_tmp0 = _.is(v.label, $Says) ? {} : void 0;
|
|
if (_tmp0 !== void 0) {
|
|
let _tmp1: (string) | undefined;
|
|
_tmp1 = typeof v[0] === 'string' ? v[0] : void 0;
|
|
if (_tmp1 !== void 0) {
|
|
let _tmp2: (string) | undefined;
|
|
_tmp2 = typeof v[1] === 'string' ? v[1] : void 0;
|
|
if (_tmp2 !== void 0) {
|
|
result = {"who": _tmp1, "what": _tmp2, __as_preserve__() {return fromSays(this);}};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
return result;
|
|
}
|
|
|
|
Says.__from_preserve__ = toSays;
|
|
|
|
export function fromSays<_embedded = _.GenericEmbedded>(_v: Says): _.Value<_embedded> {return _.Record($Says, [_v["who"], _v["what"]]);}
|
|
|
|
export function asUserStatus<_embedded = _.GenericEmbedded>(v: _.Value<_embedded>): (
|
|
UserStatus &
|
|
{__as_preserve__<_embedded = _.GenericEmbedded>(): _.Value<_embedded>}
|
|
) {
|
|
let result = toUserStatus(v);
|
|
if (result === void 0) throw new TypeError(`Invalid UserStatus: ${_.stringify(v)}`);
|
|
return result;
|
|
}
|
|
|
|
export function toUserStatus<_embedded = _.GenericEmbedded>(v: _.Value<_embedded>): undefined | (
|
|
UserStatus &
|
|
{__as_preserve__<_embedded = _.GenericEmbedded>(): _.Value<_embedded>}
|
|
) {
|
|
let result: undefined | (
|
|
UserStatus &
|
|
{__as_preserve__<_embedded = _.GenericEmbedded>(): _.Value<_embedded>}
|
|
);
|
|
if (_.Record.isRecord<_.Value<_embedded>, _.Tuple<_.Value<_embedded>>, _embedded>(v)) {
|
|
let _tmp0: ({}) | undefined;
|
|
_tmp0 = _.is(v.label, $Status) ? {} : void 0;
|
|
if (_tmp0 !== void 0) {
|
|
let _tmp1: (string) | undefined;
|
|
_tmp1 = typeof v[0] === 'string' ? v[0] : void 0;
|
|
if (_tmp1 !== void 0) {
|
|
let _tmp2: (Status) | undefined;
|
|
_tmp2 = toStatus(v[1]);
|
|
if (_tmp2 !== void 0) {
|
|
result = {
|
|
"username": _tmp1,
|
|
"status": _tmp2,
|
|
__as_preserve__() {return fromUserStatus(this);}
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
return result;
|
|
}
|
|
|
|
UserStatus.__from_preserve__ = toUserStatus;
|
|
|
|
export function fromUserStatus<_embedded = _.GenericEmbedded>(_v: UserStatus): _.Value<_embedded> {
|
|
return _.Record($Status, [_v["username"], fromStatus<_embedded>(_v["status"])]);
|
|
}
|
|
|
|
export function asStatus<_embedded = _.GenericEmbedded>(v: _.Value<_embedded>): (
|
|
Status &
|
|
{__as_preserve__<_embedded = _.GenericEmbedded>(): _.Value<_embedded>}
|
|
) {
|
|
let result = toStatus(v);
|
|
if (result === void 0) throw new TypeError(`Invalid Status: ${_.stringify(v)}`);
|
|
return result;
|
|
}
|
|
|
|
export function toStatus<_embedded = _.GenericEmbedded>(v: _.Value<_embedded>): undefined | (
|
|
Status &
|
|
{__as_preserve__<_embedded = _.GenericEmbedded>(): _.Value<_embedded>}
|
|
) {
|
|
let _tmp0: ({}) | undefined;
|
|
let result: undefined | (
|
|
Status &
|
|
{__as_preserve__<_embedded = _.GenericEmbedded>(): _.Value<_embedded>}
|
|
);
|
|
_tmp0 = _.is(v, $here) ? {} : void 0;
|
|
if (_tmp0 !== void 0) {result = {"_variant": "here", __as_preserve__() {return fromStatus(this);}};};
|
|
if (result === void 0) {
|
|
if (_.Record.isRecord<_.Value<_embedded>, _.Tuple<_.Value<_embedded>>, _embedded>(v)) {
|
|
let _tmp1: ({}) | undefined;
|
|
_tmp1 = _.is(v.label, $away) ? {} : void 0;
|
|
if (_tmp1 !== void 0) {
|
|
let _tmp2: (TimeStamp) | undefined;
|
|
_tmp2 = toTimeStamp(v[0]);
|
|
if (_tmp2 !== void 0) {
|
|
result = {
|
|
"_variant": "away",
|
|
"since": _tmp2,
|
|
__as_preserve__() {return fromStatus(this);}
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
return result;
|
|
}
|
|
|
|
export namespace Status {export const __from_preserve__ = toStatus;}
|
|
|
|
export function fromStatus<_embedded = _.GenericEmbedded>(_v: Status): _.Value<_embedded> {
|
|
switch (_v._variant) {
|
|
case "here": {return $here;};
|
|
case "away": {return _.Record($away, [fromTimeStamp<_embedded>(_v["since"])]);};
|
|
};
|
|
}
|
|
|
|
export function asTimeStamp<_embedded = _.GenericEmbedded>(v: _.Value<_embedded>): TimeStamp {
|
|
let result = toTimeStamp(v);
|
|
if (result === void 0) throw new TypeError(`Invalid TimeStamp: ${_.stringify(v)}`);
|
|
return result;
|
|
}
|
|
|
|
export function toTimeStamp<_embedded = _.GenericEmbedded>(v: _.Value<_embedded>): undefined | TimeStamp {
|
|
let _tmp0: (string) | undefined;
|
|
let result: undefined | TimeStamp;
|
|
_tmp0 = typeof v === 'string' ? v : void 0;
|
|
if (_tmp0 !== void 0) {result = _tmp0;};
|
|
return result;
|
|
}
|
|
|
|
TimeStamp.__from_preserve__ = toTimeStamp;
|
|
|
|
export function fromTimeStamp<_embedded = _.GenericEmbedded>(_v: TimeStamp): _.Value<_embedded> {return _v;}
|
|
|