src/topiarist.js
function hasImplemented(classDefinition, protocol) {
	doImplement(classDefinition, protocol);
	assertHasImplemented(classDefinition, protocol);

	return classDefinition;
}
function hasImplemented(classDefinition, protocol) {
	doImplement(classDefinition, protocol);
	assertHasImplemented(classDefinition, protocol);

	return classDefinition;
}
function hasImplemented ( classDefinition , protocol ) { doImplement ( classDefinition , protocol ) ; assertHasImplemented ( classDefinition , protocol ) ; return classDefinition ; }
Declares that the provided class implements the provided protocol.

<p>This involves checking that it does in fact implement the protocol and updating an internal list of
interfaces attached to the class definition.</p>

<p>It should be called after implementations are provided, i.e. at the end of the class definition.</p>

@throws Error if there are any attributes on the protocol that are not matched on the class definition.

@memberOf topiarist
@param {function} classDefinition A constructor that should create objects matching the protocol.
@param {function} protocol A constructor representing an interface that the class should implement.
Declares that the provided class implements the provided protocol .