@rustable/trait
Version:
A TypeScript library that implements Rust-like traits with compile-time type checking and runtime verification.
29 lines (27 loc) • 869 B
JavaScript
;
class TraitError extends Error {
constructor(message) {
super(message);
}
}
class MultipleImplementationError extends TraitError {
constructor(targetName, methodName) {
super(`Multiple implementations of method ${methodName} for ${targetName}, please use Type<Trait>.wrap`);
}
}
class NotImplementedError extends TraitError {
constructor() {
super("Not implemented.");
}
}
class TraitNotImplementedError extends TraitError {
constructor(targetName, traitName) {
super(`Trait ${traitName} not implemented for ${targetName}`);
}
}
class MethodNotImplementedError extends TraitError {
constructor(traitName, methodName) {
super(`Method ${methodName} not defined in trait ${traitName}`);
}
}
export { MethodNotImplementedError, MultipleImplementationError, NotImplementedError, TraitError, TraitNotImplementedError };