mod activation_box;
mod arrow;
mod arrow_with_text;
mod fragment;
mod layer;
mod lifeline;
mod note;
mod positioned;
mod shape;
mod shape_with_text;
mod stroke;
mod text;
mod text_positioning;
pub use activation_box::{ActivationBox, ActivationBoxDefinition};
pub use arrow::{Arrow, ArrowDefinition, ArrowDirection, ArrowDrawer, ArrowStyle};
pub use arrow_with_text::{ArrowWithText, ArrowWithTextDrawer};
pub use fragment::{Fragment, FragmentDefinition, FragmentSection};
pub use layer::{LayeredOutput, RenderLayer};
pub use lifeline::{Lifeline, LifelineDefinition};
pub use note::{Note, NoteDefinition};
pub use positioned::PositionedDrawable;
pub use shape::{
ActorDefinition, BoundaryDefinition, ComponentDefinition, ControlDefinition, EntityDefinition,
InterfaceDefinition, OvalDefinition, RectangleDefinition, Shape, ShapeDefinition,
};
pub use shape_with_text::ShapeWithText;
pub use stroke::{StrokeCap, StrokeDefinition, StrokeJoin, StrokeStyle};
pub use text::{Text, TextDefinition};
pub use text_positioning::TextPositioningStrategy;
use crate::geometry::{Point, Size};
pub trait Drawable: std::fmt::Debug {
fn render_to_layers(&self, position: Point) -> LayeredOutput;
fn size(&self) -> Size;
}