ocs_doc_api: Phase 3 attributes + nested block traversal

- SetAttribute op + GetAttributes/GetBlockEntities queries (append-only).
- backend set_attribute (add/update Insert attribute), attributes (tag,value pairs),
  block_entities (read-only traversal via BlockRecord.entity_handles -> id+kind+bounds).
- facade Entity::set_attribute/attributes, Document::block_entities.
- spec Insert methods; api_reference + binding_schema regenerated; mocks + baseline.
- Query enum: drop Copy (GetBlockEntities carries String).
- Test phase3_attributes_and_block_traversal -> 608 host lib + 3 consistency green.
This commit is contained in:
Sebastian committed 2026-09-06 10:02:23 +02:00
1 parent 2dba0158ca
commit 67655add72
15 files changed
+267 -14

No files matched your search

+6
View File
@@ -49,6 +49,10 @@ pub enum QueryResult {
HatchBoundary(Vec<Vec<[f64; 2]>>),
/// A dimension's measured value (distance for linear/radius, degrees for angular).
DimensionMeasurement(f64),
/// An insert's attributes as (tag, value) pairs.
Attributes(Vec<(String, String)>),
/// The entities inside a block definition (read-only traversal).
BlockEntities(Vec<EntityView>),
}
/// Convenience: the query name for diagnostics.
@@ -65,6 +69,8 @@ impl crate::gen::Query {
GetTextContent { .. } => "GetTextContent",
GetHatchBoundary { .. } => "GetHatchBoundary",
GetDimensionMeasurement { .. } => "GetDimensionMeasurement",
GetAttributes { .. } => "GetAttributes",
GetBlockEntities { .. } => "GetBlockEntities",
}
}
}