#![deny(missing_docs)]
#[cfg(not(any(
feature = "desktop",
feature = "android",
feature = "web",
feature = "ios"
)))]
compile_error!(
"cranpose must be built with at least one of `desktop`, `android`, `web`, or `ios` features."
);
#[cfg(not(any(feature = "renderer-pixels", feature = "renderer-wgpu")))]
compile_error!("cranpose requires either `renderer-pixels` or `renderer-wgpu` feature.");
mod launcher;
#[cfg(all(feature = "desktop", feature = "renderer-wgpu"))]
pub use launcher::LaunchError;
pub use launcher::{AppLauncher, AppSettings};
#[cfg(feature = "renderer-wgpu")]
mod present_mode;
pub use cranpose_services::*;
pub use cranpose_ui::*;
pub use cranpose_core::{mutableStateOf, remember, rememberUpdatedState, useState};
#[doc(hidden)]
pub use cranpose_core::{
debug_label_current_scope, location_key, with_current_composer, CallbackHolder, Composer,
ParamState, ReturnSlot,
};
#[cfg(all(feature = "desktop", feature = "renderer-wgpu", feature = "robot"))]
#[doc(hidden)]
pub type RobotAppHook = dyn FnMut(String, String) -> Result<Option<String>, String>;
pub mod prelude {
pub use crate::{AppLauncher, AppSettings};
pub use cranpose_core::{mutableStateOf, remember, rememberUpdatedState, useState};
pub use cranpose_services::*;
pub use cranpose_ui::*;
}
#[cfg(all(feature = "android", feature = "renderer-wgpu", target_os = "android"))]
pub mod android;
#[cfg(all(feature = "desktop", feature = "renderer-wgpu"))]
pub mod desktop;
#[cfg(all(feature = "desktop", feature = "renderer-wgpu"))]
pub mod recorder;
#[cfg(all(feature = "web", feature = "renderer-wgpu", target_arch = "wasm32"))]
pub mod web;
#[cfg(all(feature = "desktop", feature = "renderer-wgpu", feature = "robot"))]
pub use desktop::{Robot, RobotScreenshot, SemanticElement, SemanticRect};
#[cfg(all(feature = "desktop", feature = "renderer-wgpu"))]
pub use cranpose_app_shell::{
current_fps, fps_display, fps_display_detailed, fps_stats, DevOptions, FpsStats,
FramePacingMode,
};