aster_forge_cloud_files_macos_bridge/
lib.rs

1//! Product-neutral Rust bridge contracts for Apple File Provider extensions.
2//!
3//! This crate owns persistent identifier/version mapping, owned enumeration results,
4//! extension-session fencing, and the narrow C ABI used by a thin Swift extension shell. Swift
5//! retains all `NSFileProvider*` objects and completion handlers. Product crates retain backend
6//! adapters, authentication, persistence, domain policy, packaging, signing, and user-visible
7//! errors.
8#![cfg_attr(
9    not(test),
10    deny(
11        clippy::unwrap_used,
12        clippy::unreachable,
13        clippy::expect_used,
14        clippy::panic,
15        clippy::unimplemented,
16        clippy::todo
17    )
18)]
19
20mod engine;
21mod enumeration;
22mod error;
23mod ffi;
24mod identifier;
25mod item;
26mod session;
27mod version;
28
29pub use engine::{MacosContentFetchPlan, MacosFetchedContentChunk, MacosReadOnlyEngine};
30pub use enumeration::{
31    MAX_ENUMERATION_ITEMS, MAX_ENUMERATION_PAGE_ITEMS, MAX_ENUMERATION_STATE_BYTES,
32};
33pub use enumeration::{MacosEnumerationPage, MacosEnumerationRequest, MacosEnumerationState};
34pub use error::{MacosBridgeError, MacosErrorCode, Result, backend_error_code};
35pub use ffi::{
36    MacosFfiBuffer, MacosFfiRequestHandle, MacosFfiRequestResult, MacosFfiResult,
37    MacosFfiSessionHandle, MacosFfiSessionResult, aster_forge_cloud_files_macos_buffer_release,
38    aster_forge_cloud_files_macos_identifier_decode,
39    aster_forge_cloud_files_macos_identifier_encode, aster_forge_cloud_files_macos_request_release,
40    aster_forge_cloud_files_macos_session_begin_closing,
41    aster_forge_cloud_files_macos_session_begin_request,
42    aster_forge_cloud_files_macos_session_create,
43    aster_forge_cloud_files_macos_session_mark_disconnected,
44    aster_forge_cloud_files_macos_session_release,
45};
46pub use identifier::{
47    FILE_PROVIDER_CURRENT_WORKING_SET_IDENTIFIER, FILE_PROVIDER_ROOT_CONTAINER_IDENTIFIER,
48    FILE_PROVIDER_TRASH_CONTAINER_IDENTIFIER, MAX_FILE_PROVIDER_IDENTIFIER_BYTES,
49    MAX_IDENTITY_FIELD_BYTES, MacosFileProviderIdentifier, MacosFileProviderSystemContainer,
50};
51pub use item::{MacosFileProviderItem, MacosFileProviderItemKind};
52pub use session::{MacosExtensionRequestLease, MacosExtensionSession};
53pub use version::{FILE_PROVIDER_ITEM_VERSION_COMPONENT_MAX_BYTES, MacosFileProviderItemVersion};