/// A trait meant to signal what [`layout managers`](crate::layout::LayoutManager) the render engine is compatible with
///
/// Tip: Instead of specifying a concrete type for `Layout` use a generic type with the necessary traits for the engine to work
/// A trait meant to signal that the renderer is capable of drawing frames synchronously
///
/// If your render engine requires async code to function consider using [`cotisRenderAsync`](CotisRendererAsync)
/// Tip: you probably can implement [`cotisRenderAsync`](CotisRendererAsync) as well with the same logic.
/// A trait meant to signal that the renderer is capable of drawing frames asynchronously
///
/// If your render engine requires sync code to function consider using [`cotisRender`](CotisRenderer)