Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> # Conflicts: # apps/darkroom-android/Cargo.toml # apps/darkroom-desktop/Cargo.toml # platform/dr-plat/src/lib.rs
35 lines
1.2 KiB
Rust
35 lines
1.2 KiB
Rust
//! Platform abstraction for DarkRoom.
|
|
//!
|
|
//! Traits are defined here and implemented per platform, then injected at
|
|
//! construction, so `core/` contains no `#[cfg(target_os)]` (NFR-PORT-1,
|
|
//! ARCH §10).
|
|
|
|
// Neither of the next two is a trait, and they are the modules here that are
|
|
// not. They belong in this crate for the same reason the traits do: "where does
|
|
// this platform let an application keep state" is a platform question, and both
|
|
// entry points need the answer before either has a window. Resolving it in
|
|
// `apps/` would mean writing it twice, once per platform, which is the
|
|
// arrangement this crate exists to prevent.
|
|
pub mod crash;
|
|
pub mod diagnostics;
|
|
pub mod display;
|
|
pub mod secrets;
|
|
pub mod state;
|
|
pub mod storage;
|
|
pub mod volumes;
|
|
|
|
pub use diagnostics::{Installed, LogFile};
|
|
pub use display::{
|
|
Bounds, DisplayInfo, DisplayProfile, DisplayServer, DisplaySurvey, FallbackReason,
|
|
ProfileSource,
|
|
};
|
|
pub use secrets::{
|
|
EphemeralSecretStore, PlatformSecretStore, SecretError, SecretKind, SecretRef, SecretStore,
|
|
};
|
|
pub use state::{set_state_dir, state_dir};
|
|
pub use storage::{
|
|
DirRef, Entry, LocalStorage, NewFile, Node, SeekableRead, Storage, StorageError,
|
|
WritableStorage,
|
|
};
|
|
pub use volumes::{imports_supported, volumes, Volume};
|