Skip to main content

aprender_present_lib/
lib.rs

1//! Presentar: WASM-first visualization and rapid application framework.
2//!
3//! Built on the Sovereign AI Stack (Trueno, Aprender, Realizar, Pacha).
4//!
5//! # Browser Usage (WASM)
6//!
7//! ```javascript
8//! import init, { App, log } from './presentar.js';
9//!
10//! async function main() {
11//!     await init();
12//!     const app = new App('canvas');
13//!     app.render_json('[{"Rect": {...}}]');
14//! }
15//! ```
16
17#![allow(
18    dead_code,
19    unused_imports,
20    clippy::doc_markdown,
21    clippy::missing_const_for_fn,
22    clippy::use_self,
23    clippy::pub_underscore_fields,
24    clippy::match_same_arms,
25    clippy::unwrap_used,
26    clippy::disallowed_methods,
27    clippy::cast_precision_loss,
28    clippy::cast_possible_wrap,
29    clippy::cast_sign_loss,
30    clippy::needless_pass_by_value,
31    clippy::too_many_lines,
32    clippy::module_name_repetitions,
33    clippy::unnecessary_unwrap,
34    clippy::struct_excessive_bools,
35    clippy::type_complexity,
36    clippy::too_many_arguments,
37    clippy::similar_names,
38    clippy::map_unwrap_or,
39    clippy::redundant_else,
40    clippy::collapsible_if,
41    clippy::manual_let_else,
42    clippy::if_not_else,
43    clippy::uninlined_format_args,
44    clippy::suboptimal_flops,
45    clippy::unnecessary_wraps,
46    clippy::float_cmp,
47    clippy::clone_on_copy,
48    clippy::single_match,
49    clippy::trivially_copy_pass_by_ref,
50    clippy::missing_panics_doc,
51    clippy::missing_errors_doc,
52    clippy::must_use_candidate,
53    clippy::return_self_not_must_use,
54    clippy::let_and_return,
55    clippy::items_after_statements,
56    clippy::ptr_arg,
57    clippy::cast_lossless,
58    clippy::struct_field_names,
59    clippy::unused_self,
60    clippy::fn_params_excessive_bools,
61    clippy::many_single_char_names,
62    clippy::match_like_matches_macro,
63    clippy::assigning_clones,
64    clippy::wrong_self_convention,
65    clippy::derive_partial_eq_without_eq,
66    clippy::needless_raw_string_hashes,
67    unreachable_pub
68)]
69
70#[macro_use]
71#[allow(unused_macros)]
72mod generated_contracts;
73
74pub use presentar_core::*;
75pub use presentar_layout as layout;
76pub use presentar_widgets as widgets;
77pub use presentar_yaml as yaml;
78
79pub mod browser;
80
81#[cfg(target_arch = "wasm32")]
82pub use browser::{App, Canvas2DRenderer};
83
84pub use browser::{BrowserRouter, RouteMatch, RouteMatcher};
85
86// WebGPU types available when gpu feature is enabled
87#[cfg(feature = "gpu")]
88mod webgpu;
89#[cfg(feature = "gpu")]
90pub use webgpu::{
91    commands_to_instances, Instance as GpuInstance, Uniforms as GpuUniforms, Vertex as GpuVertex,
92};