Subtrait work
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
Julien Valverdé
2024-02-04 03:19:33 +01:00
parent 781567a3bd
commit f6d2d68eee
3 changed files with 31 additions and 42 deletions

View File

@@ -1,5 +1,7 @@
import { Call } from "hotscript"
import { Implements, TraitExpressionTraitsFn, abstract, expression, trait } from "."
import { Call, ComposeLeft, Pipe } from "hotscript"
import { Implements, TraitExpressionAbstractFn, TraitExpressionTraitsFn, abstract, expression, trait } from "."
import { Simplify } from "type-fest"
import { SimplifyFn } from "./util"
const PrintsHelloOnNew = trait(
@@ -59,9 +61,23 @@ const builder = expression
)
const exp = builder.get()
type Abs = Call<TraitExpressionTraitsFn, typeof exp>
type Abs = Call<ComposeLeft<[
TraitExpressionAbstractFn,
SimplifyFn,
]>, typeof exp>
exp.subtrait(
s => {
interface Subtrait extends (typeof s) {
}
return abstract<Subtrait>()
},
)
class User extends exp.extends implements Implements<typeof exp> {
declare status: { _tag: "awaitingPayment" } | { _tag: "active"; activeSince: Date; expiresAt?: Date | undefined } | { _tag: "expired"; expiredSince: Date }
id: bigint = -1n
}