aster_forge_cloud_files_windows/
lib.rs

1//! Windows Cloud Files bindings for the product-neutral Forge cloud-files core.
2//!
3//! This crate owns CFAPI-specific item/sync-root identity encoding, placeholder metadata, filename
4//! validation, persistent registration policies, active connection/session fencing, owned
5//! `FETCH_DATA`/`CANCEL_FETCH_DATA` snapshots, bounded callback ingress, active hydration waiter
6//! cancellation, and native calls. Product authentication, remote DTOs, account policy,
7//! persistence adapters, and user-visible error mapping remain in product crates.
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 connection;
21mod error;
22mod identity;
23mod placeholder;
24mod progress;
25mod registration;
26mod waiter_registry;
27mod watchdog;
28
29#[cfg(windows)]
30mod native;
31#[cfg(windows)]
32mod native_connection;
33
34pub use connection::{
35    CFAPI_MAX_PRIORITY_HINT, CFAPI_TRANSFER_ALIGNMENT_BYTES, WindowsCallbackInfoSnapshot,
36    WindowsCallbackLease, WindowsCallbackQueueMetrics, WindowsCallbackRange,
37    WindowsCallbackRangeLength, WindowsCallbackRequest, WindowsCancelFetchDataFlags,
38    WindowsCancelFetchDataRequest, WindowsCancelFetchDataSnapshot, WindowsConnectionKey,
39    WindowsConnectionSession, WindowsFetchDataCorrelation, WindowsFetchDataFailure,
40    WindowsFetchDataFlags, WindowsFetchDataPreparation, WindowsFetchDataProgressReporter,
41    WindowsFetchDataRequest, WindowsFetchDataSnapshot, WindowsFetchDataTransfer,
42    WindowsObservedNotification, WindowsPreflightRequest, WindowsPreflightSnapshot,
43    WindowsProcessInfoSnapshot, WindowsRequestKey, WindowsRestartHydration,
44    WindowsSyncRootConnectOptions, WindowsTransferKey,
45};
46pub use error::{Result, WindowsCloudFilesError};
47pub use identity::{CFAPI_FILE_IDENTITY_MAX_BYTES, WindowsFileIdentity};
48#[cfg(windows)]
49pub use native::{
50    WindowsPinRecursion, WindowsPinState, WindowsPlaceholderBatchOutcome,
51    WindowsPlaceholderCreateOutcome, create_placeholders, dehydrate_placeholder,
52    register_sync_root, set_placeholder_in_sync, set_placeholder_pin_state, unregister_sync_root,
53};
54#[cfg(windows)]
55pub use native_connection::{
56    WindowsDisconnectOutcome, WindowsSyncRootConnection, connect_sync_root,
57};
58pub use placeholder::{
59    FILE_ATTRIBUTE_DIRECTORY, FILE_ATTRIBUTE_NORMAL, WindowsFileTimes, WindowsPlaceholder,
60    WindowsPlaceholderMetadata, WindowsPlaceholderOptions,
61};
62pub use progress::WindowsFetchDataProgress;
63pub use registration::{
64    CFAPI_SYNC_ROOT_IDENTITY_MAX_BYTES, WindowsHardLinkPolicy, WindowsHydrationPolicy,
65    WindowsHydrationPolicyPrimary, WindowsInSyncPolicy, WindowsPlaceholderManagementPolicy,
66    WindowsPlatformVersion, WindowsPopulationPolicy, WindowsProviderId, WindowsSyncRootIdentity,
67    WindowsSyncRootPolicies, WindowsSyncRootRegistration, WindowsSyncRootRegistrationOptions,
68};
69pub use waiter_registry::{
70    WindowsFetchDataCancellationOutcome, WindowsFetchDataWaiterMetrics,
71    WindowsFetchDataWaiterRegistry, WindowsFetchDataWatchdogOutcome,
72};
73pub use watchdog::{
74    WINDOWS_CFAPI_CALLBACK_TIMEOUT, WindowsFetchDataWatchdog, WindowsFetchDataWatchdogConfig,
75};