Another project
1pub mod document;
2pub mod evaluator;
3pub mod io;
4pub mod matcher;
5mod profile;
6pub mod recompute;
7pub mod sketch;
8#[cfg(test)]
9mod test_support;
10pub mod undo;
11
12pub use bone_kernel::{
13 BrepError, BrepFace, BrepSolid, DraftAngle, DraftDirection, DraftMagnitude, ExtrudeDirection,
14 ExtrudeEndCondition, ExtrudeFeature, ExtrudeSense, MergeResult, ProfileDefect, ThinWall,
15 ThinWallDirection, TruckGap,
16};
17pub use document::{
18 BindSketchToFaceError, Document, DocumentHeader, DocumentParameters, ExtrudeFile, FeatureEdge,
19 FeatureNode, FeatureTree, ImportedSolid, PrincipalPlane, RenameExtrudeError, RenameSketchError,
20 SketchFile, SketchRegistry, SketchRegistryEntry, UnitsPreference, extrude_filename,
21 sketch_filename,
22};
23pub use evaluator::{
24 EvaluatedExtrude, EvaluatedSketch, ExtrudeError, evaluate_extrude, evaluate_sketch,
25};
26pub use io::{
27 BlobHash, BlobKind, DocumentFolder, FolderError, FolderErrorKind, LabelSidecar, RonError,
28 from_str, load, read_solid, read_tessellation, save, to_string, write_solid,
29 write_tessellation,
30};
31pub use matcher::{ResolvedEntity, ResolvedFace, resolve, resolve_face};
32pub use recompute::{EvaluatedModel, RebuildBudget, RebuildCost, RebuildPass, RecomputeScope};
33pub use sketch::{
34 ArcData, CircleData, DimensionKind, DimensionRefs, DimensionValue, DimensionValueMismatch,
35 EditOutcome, EntityRefs, LineData, PointData, RelationRefs, Sketch, SketchDimension,
36 SketchDofReport, SketchEdit, SketchEditError, SketchEntity, SketchEntityKind, SketchParameter,
37 SketchRelation, SketchStatusReport, SketchVersion, SolverError,
38};
39pub use undo::UndoStack;
40
41#[derive(Debug, thiserror::Error)]
42pub enum DocumentError {
43 #[error(transparent)]
44 SketchEdit(#[from] SketchEditError),
45 #[error(transparent)]
46 Folder(#[from] FolderError),
47 #[error(transparent)]
48 Ron(#[from] RonError),
49}
50
51pub type Result<T, E = DocumentError> = core::result::Result<T, E>;