API
Rust facade — реализовано
Главный тип: ifccore::IfcModel<'source>.
| API | Результат |
|---|---|
IfcModel::open(&[u8]) |
открывает модель без копии полного буфера |
entity(express_id) |
возвращает ID, IFC-тип и byte range |
entities_by_type(name) |
детерминированный список по Express ID |
diagnostics() |
коды и полуоткрытые диапазоны проблем |
edit() |
начинает изолированную транзакцию |
Edit::set_attribute(...) |
заменяет атрибут STEP-токеном |
Edit::commit() |
атомарно публикует overlay |
write(&mut Write) |
записывает новый IFC |
ErrorCode: EntityNotFound, InvalidEdit, WriteFailed. Полная справка:
Rust API и rustdoc cargo doc -p ifccore --open.
WASM API — реализовано
Группы exports: open/streaming, query/search, tree/properties, geometry,
edit/undo/redo, export/cancellation, diagnostics/performance и ifc_close.
JSON DTO содержат schema; основной контракт — ifc-wasm.dto.v1, binary
geometry — IFCG/2.
Обязательный lifecycle:
ifc_open(bytes) → handle → query/edit/export → ifc_close(handle)
Handle нельзя переиспользовать после close. Профиль однопоточный; threads и
SharedArrayBuffer не входят в 0.2. Точный список сигнатур:
WASM API 0.2.
Версионирование
Несовместимое изменение сигнатуры, DTO discriminator/error code или binary
layout требует новой версии схемы и migration note. Низкоуровневый pub Rust
не означает стабильный публичный API.