package tc.oc.commons.core.inject;
import tc.oc.minecraft.api.event.Enableable;
/**
* A facet extends some "primary" object by sharing its cardinality and lifecycle.
* There is, at most, one instance of the facet for each instance of the primary object,
* and the facet is enabled and disabled along with the primary object.
*
* A facet is registered at configuration-time using a {@link FacetBinder}
*/
public interface Facet extends Enableable {
/**
* Called when this listener starts listening
*/
default void enable() {}
/**
* Called when this listener stops listening
*/
default void disable() {}
}