use crate::lc_entity::LcEntity;
use crate::lc_entity_type::LcEntityType;

/// A generic action which source performs onto a target.
pub trait LcAction<T: LcEntityType> {
    fn apply(&self, source: &LcEntity<T>, target: &LcEntity<T>);
    fn clone_box(&self) -> Box<dyn LcAction<T>>;
}
