forked from 1b-agent/opencadstudio-upstream
ocs_doc_api: update docs + fix review-drift findings
- lib.rs: export all 14 facade handles (add ArcCurve/Ellipse/Spline/Ray/XLine/Text/ MText/Dimension + Circle) — public surface matches collection return types. - build.rs: fix step-1 comment (enums are hand-maintained, not 'regenerated'); generic_reference_md: Clone (not Copy) + full 14-handle list (was stale 6). - ops.rs/query.rs: correct 'hand-maintained' module doc comments (were 'GENERATED'). - layouts.json: extend to all 22 Operation + 12 Query variants (was stale phase-1). - binding_schema.json regenerated (complete layouts + derived handles). - generate.py: inject 'id': self.id for SetTextContent/SetAttribute/SetViewportView/ Transform/Delete/AddVertex (was malformed id-less payloads); _apply_op/_apply_query accept want=None; extend PY_TYPES (String/&str/Vec returns/new handles). - README.md: Clone (not Copy) + full scope (2D curves, annotations, containers, viewports, media) replacing stale 'Not yet' list. - Plan (.kilo): mark implemented & published; pointer to live crate docs.
This commit is contained in:
1 parent
8417375e5a
commit
a9c278e32a
9 files changed
+90
-32
No files matched your search
@@ -178,8 +178,9 @@ Table (read-only): GetEntity kind; generic delete. No typed create/bounds in v1.
|
||||
|
||||
## Generic methods (every handle)
|
||||
|
||||
Every typed handle (`Solid`, `Line`, `Circle`, `Polyline`, `Point`, `Entity`) is a
|
||||
`Copy`, `Send`, `Sync` token `{ ObjectId, session }` and supports:
|
||||
Every typed handle (`Solid`, `Line`, `Circle`, `Polyline`, `Point`, `ArcCurve`,
|
||||
`Ellipse`, `Spline`, `Ray`, `XLine`, `Text`, `MText`, `Dimension`, `Entity`) is a
|
||||
`Clone`, `Send`, `Sync` token `{ ObjectId, session }` and supports:
|
||||
|
||||
- **`id()` -> `ObjectId`** — the stable entity identity.
|
||||
- **`bounds()` -> `Aabb`** — coarse bounding box (solids lift-on-miss; 2D entities
|
||||
|
||||
@@ -410,7 +410,18 @@
|
||||
"Delete { id: ObjectId }",
|
||||
"CreateMany(Vec<EntitySpec>)",
|
||||
"TransformMany { ids: Vec<ObjectId>, placement: PlacementSpec }",
|
||||
"DeleteMany(Vec<ObjectId>)"
|
||||
"DeleteMany(Vec<ObjectId>)",
|
||||
"CreateInsert(InsertSpec)",
|
||||
"CreateViewport(ViewportSpec)",
|
||||
"CreateText(TextSpec)",
|
||||
"CreateMText(MTextSpec)",
|
||||
"SetTextContent { id: ObjectId, value: String }",
|
||||
"CreateHatch(HatchSpec)",
|
||||
"CreateDimensionLinear(DimensionSpec)",
|
||||
"SetAttribute { id: ObjectId, tag: String, value: String }",
|
||||
"SetViewportView { id: ObjectId, view_target: [f64; 3], view_height: f64 }",
|
||||
"CreateRasterImage(RasterImageSpec)",
|
||||
"Loft { profiles: Vec<ObjectId> }"
|
||||
]
|
||||
},
|
||||
"Query": {
|
||||
@@ -420,7 +431,13 @@
|
||||
"GetCentroid { id: ObjectId }",
|
||||
"GetVolume { id: ObjectId }",
|
||||
"GetIntersects { a: ObjectId, b: ObjectId }",
|
||||
"GetGeometryRevision"
|
||||
"GetGeometryRevision",
|
||||
"GetTextContent { id: ObjectId }",
|
||||
"GetHatchBoundary { id: ObjectId }",
|
||||
"GetDimensionMeasurement { id: ObjectId }",
|
||||
"GetAttributes { id: ObjectId }",
|
||||
"GetBlockEntities { block_name: String }",
|
||||
"GetViewportView { id: ObjectId }"
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
@@ -12,7 +12,18 @@
|
||||
"Delete { id: ObjectId }",
|
||||
"CreateMany(Vec<EntitySpec>)",
|
||||
"TransformMany { ids: Vec<ObjectId>, placement: PlacementSpec }",
|
||||
"DeleteMany(Vec<ObjectId>)"
|
||||
"DeleteMany(Vec<ObjectId>)",
|
||||
"CreateInsert(InsertSpec)",
|
||||
"CreateViewport(ViewportSpec)",
|
||||
"CreateText(TextSpec)",
|
||||
"CreateMText(MTextSpec)",
|
||||
"SetTextContent { id: ObjectId, value: String }",
|
||||
"CreateHatch(HatchSpec)",
|
||||
"CreateDimensionLinear(DimensionSpec)",
|
||||
"SetAttribute { id: ObjectId, tag: String, value: String }",
|
||||
"SetViewportView { id: ObjectId, view_target: [f64; 3], view_height: f64 }",
|
||||
"CreateRasterImage(RasterImageSpec)",
|
||||
"Loft { profiles: Vec<ObjectId> }"
|
||||
]
|
||||
},
|
||||
"Query": {
|
||||
@@ -22,7 +33,13 @@
|
||||
"GetCentroid { id: ObjectId }",
|
||||
"GetVolume { id: ObjectId }",
|
||||
"GetIntersects { a: ObjectId, b: ObjectId }",
|
||||
"GetGeometryRevision"
|
||||
"GetGeometryRevision",
|
||||
"GetTextContent { id: ObjectId }",
|
||||
"GetHatchBoundary { id: ObjectId }",
|
||||
"GetDimensionMeasurement { id: ObjectId }",
|
||||
"GetAttributes { id: ObjectId }",
|
||||
"GetBlockEntities { block_name: String }",
|
||||
"GetViewportView { id: ObjectId }"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -46,8 +46,9 @@ pub use revision::GeometryRevision;
|
||||
|
||||
pub use envelope::{DocApiEnvelope, EnvelopeBody, OpOutcome, Receipt};
|
||||
pub use facade::{
|
||||
CurveCollection, DocApi, Document, Entity, EntityCollection, HasId, Line, OpGroup, Point,
|
||||
Polyline, QueryBatch, QueryResults, Solid, SolidCollection,
|
||||
ArcCurve, Circle, CurveCollection, Dimension, DocApi, Document, Ellipse, Entity,
|
||||
EntityCollection, HasId, Line, MText, OpGroup, Point, Polyline, QueryBatch, QueryResults, Ray,
|
||||
Solid, SolidCollection, Spline, Text, XLine,
|
||||
};
|
||||
pub use ops::{BoolOp, Curve2Spec, EntitySpec, Operation, PlacementSpec, SolidPrimitive};
|
||||
pub use query::{Aabb, EntityView, Query, QueryResult};
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
//! Write operations — the typed, transport-agnostic vocabulary for changing the
|
||||
//! document (plan §5). The `Operation` enum itself is GENERATED into
|
||||
//! `crate::gen` by `build.rs` from `spec/entities.toml`; this module re-exports
|
||||
//! it and holds the hand-written payload mirrors.
|
||||
//! document (plan §5). The `Operation` enum is **hand-maintained** (append-only)
|
||||
//! in `src/gen/ops_gen.rs` — it is NOT derived from the spec by build.rs; the
|
||||
//! spec's `op` names must each map to a variant here (asserted by a test). This
|
||||
//! module re-exports it and holds the hand-written payload mirrors.
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
//! Read queries — typed, transport-agnostic reads of entity state (plan §5).
|
||||
//! The `Query` enum is GENERATED into `crate::gen` by `build.rs`; this module
|
||||
//! re-exports it and holds the hand-written result DTOs.
|
||||
//! The `Query` enum is **hand-maintained** (append-only) in `src/gen/query_gen.rs`
|
||||
//! — NOT derived from the spec by build.rs (the spec's `query` names must map to
|
||||
//! a variant here, asserted by a test). This module re-exports it and holds the
|
||||
//! hand-written result DTOs.
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
|
||||
Reference in new issue
Block a user