@harmoniclabs/plu-ts-onchain
Version:
An embedded DSL for Cardano smart contracts creation coupled with a library for Cardano transactions, all in Typescript
66 lines (65 loc) • 2.04 kB
TypeScript
import { PDataRepresentable } from "../../../PType/PDataRepresentable.js";
import { PStruct } from "../../../PTypes/PStruct/pstruct.js";
import { StructT, TermType, FromPType, ToPType } from "../../../type_system/index.js";
import { TermFn } from "../../../PTypes/PFn/PFn.js";
import type { Term } from "../../../Term/index.js";
export type MaybeT<T extends TermType> = StructT<{
Just: {
val: T;
};
Nothing: {};
}, {
unwrap: TermFn<[PMaybeRawT<ToPType<T>>], ToPType<T>>;
default: TermFn<[PMaybeRawT<ToPType<T>>, ToPType<T>], ToPType<T>>;
}>;
type PMaybeRawT<PTy extends PDataRepresentable> = PStruct<{
Just: {
val: FromPType<PTy>;
};
Nothing: {};
}, {}>;
export type PMaybeT<PTy extends PDataRepresentable> = PStruct<{
Just: {
val: FromPType<PTy>;
};
Nothing: {};
}, {
unwrap: TermFn<[PMaybeRawT<PTy>], PTy>;
default: TermFn<[PMaybeRawT<PTy>, PTy], PTy>;
}>;
export declare function PMaybe<T extends TermType>(tyArg: T): PStruct<{
Just: {
val: T;
};
Nothing: {};
}, {
unwrap: Term<import("../../../index.js").PLam<PStruct<{
Just: {
val: T;
};
Nothing: {};
}, {}>, ToPType<T>>> & {
$: (input: import("../../index.js").PappArg<PStruct<{
Just: {
val: T;
};
Nothing: {};
}, {}>>) => import("../../index.js").UtilityTermOf<ToPType<T>>;
};
default: Term<import("../../../index.js").PLam<PStruct<{
Just: {
val: T;
};
Nothing: {};
}, {}>, import("../../../index.js").PLam<ToPType<T>, ToPType<T>>>> & {
$: (input: import("../../index.js").PappArg<PStruct<{
Just: {
val: T;
};
Nothing: {};
}, {}>>) => Term<import("../../../index.js").PLam<ToPType<T>, ToPType<T>>> & {
$: (input: import("../../index.js").PappArg<ToPType<T>>) => import("../../index.js").UtilityTermOf<ToPType<T>>;
};
};
}>;
export {};