UNPKG

@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
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 {};