kittycad_modeling_cmds/lib.rs
1//! KittyCAD's Modeling API lets you design 3D models.
2//! # Beware
3//! This project does not use semver. We are using 0.1.x for everything. If you use this crate, commit your Cargo.lock to avoid being broken when we publish a new version.
4//! Why? Because we use this primarily for KittyCAD server and clients, where we are on top of all changes.
5
6pub mod base64;
7
8#[cfg(feature = "convert_client_crate")]
9mod convert_client_crate;
10
11/// Various coordinate systems.
12pub mod coord;
13
14/// chrono wrapper for datetimes.
15pub mod datetime;
16
17/// The modeling command enum with each specific modeling command.
18mod def_enum;
19
20/// Import and export types.
21pub mod format;
22
23/// Modeling command IDs, used to associated requests and responses.
24/// Also used to construct commands which refer to previous commands.
25pub mod id;
26
27#[cfg(feature = "cxx")]
28pub mod impl_extern_type;
29
30pub mod length_unit;
31
32/// When a modeling command is successful, these responses could be returned.
33pub mod ok_response;
34
35/// Controlling the rendering session.
36pub mod session;
37
38/// Types that are shared between various modeling commands, like Point3d.
39pub mod shared;
40
41#[cfg(all(test, feature = "derive-jsonschema-on-enums"))]
42mod tests;
43
44/// The modeling command trait that each modeling command implements.
45mod traits;
46
47/// Units of measurement.
48pub mod units;
49
50/// Types for the WebSocket API.
51#[cfg(feature = "websocket")]
52pub mod websocket;
53
54// Export some key items for anyone consuming the library.
55pub use def_enum::*;
56pub use ok_response::output;
57pub use traits::*;