UNPKG

@rustable/trait

Version:

A TypeScript library that implements Rust-like traits with compile-time type checking and runtime verification.

35 lines (32 loc) 1.03 kB
'use strict'; "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}`); } } exports.MethodNotImplementedError = MethodNotImplementedError; exports.MultipleImplementationError = MultipleImplementationError; exports.NotImplementedError = NotImplementedError; exports.TraitError = TraitError; exports.TraitNotImplementedError = TraitNotImplementedError;