UNPKG

@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
"use strict"; 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 };