import { Effect as E, Schema as S } from "effect";
type Loadable = typeof Loadable.Type
const Loadable = S.Union(
S.TaggedStruct("NotStarted", {}),
S.TaggedStruct("Loading", {}),
S.TaggedStruct("Loaded", {
value: S.Union(S.Number, S.String), // How to make this generic?
}),
);
const [NotStarted, Loading, Loaded] = Loadable.members;
const x = Loaded.make({ value: 1 });
const y = Loaded.make({ value: 'a' });
// const z = Loaded.make({ value: true }); // Currently not allowed
import { Effect as E, Schema as S } from "effect";
type Loadable = typeof Loadable.Type
const Loadable = S.Union(
S.TaggedStruct("NotStarted", {}),
S.TaggedStruct("Loading", {}),
S.TaggedStruct("Loaded", {
value: S.Union(S.Number, S.String), // How to make this generic?
}),
);
const [NotStarted, Loading, Loaded] = Loadable.members;
const x = Loaded.make({ value: 1 });
const y = Loaded.make({ value: 'a' });
// const z = Loaded.make({ value: true }); // Currently not allowed