1#![deny(unsafe_code)]
4
5#[cfg(test)]
6use cranpose_core::{location_key, Composition, MemoryApplier};
7
8pub mod file_picker;
9pub mod http;
10#[cfg(not(target_arch = "wasm32"))]
11pub mod peer;
12pub mod share_sheet;
13pub mod theme;
14pub mod uri_handler;
15pub mod writable_folder;
16
17pub use file_picker::{
18 clear_platform_file_picker, default_file_picker, local_file_picker, set_platform_file_picker,
19 FileFilter, FilePicker, FilePickerError, FilePickerOptions, FilePickerRef, FolderStream,
20 FolderStreamRef, PickedEntry, PickedEntryRef, PickedKind, PickerFuture, ProvideFilePicker,
21 ResumedPick,
22};
23pub use http::{
24 default_http_client, local_http_client, map_ordered_concurrent, HttpClient, HttpClientRef,
25 HttpError, HttpFuture,
26};
27#[cfg(not(target_arch = "wasm32"))]
28pub use peer::{
29 content_length, fetch_range, fetch_to_writer, ByteSource, BytesSource, FetchResult, PeerError,
30 PeerServer, SourceResolver,
31};
32pub use share_sheet::{
33 clear_platform_share_sheet, default_share_sheet, local_share_sheet, set_platform_share_sheet,
34 ProvideShareSheet, ShareContent, ShareError, ShareSheet, ShareSheetRef,
35};
36pub use theme::{
37 default_system_theme, isSystemInDarkTheme, local_system_theme, ProvideSystemTheme, SystemTheme,
38};
39pub use uri_handler::{
40 clear_platform_uri_handler, default_uri_handler, local_uri_handler, set_platform_uri_handler,
41 ProvideUriHandler, UriHandler, UriHandlerError, UriHandlerRef,
42};
43pub use writable_folder::{
44 clear_platform_writable_folder_picker, open_writable_folder, pick_writable_folder,
45 set_platform_writable_folder_picker, set_writable_folder_store_factory,
46 take_resumed_writable_folder, FolderError, WritableFolderPicker, WritableFolderPickerRef,
47 WritableFolderStore, WritableFolderStoreRef,
48};
49
50#[cfg(test)]
52pub(crate) type TestComposition = Composition<MemoryApplier>;
53
54#[cfg(test)]
56pub(crate) fn run_test_composition(build: impl FnMut()) -> TestComposition {
57 let mut composition = Composition::new(MemoryApplier::new());
58 composition
59 .render(location_key(file!(), line!(), column!()), build)
60 .expect("initial render succeeds");
61 composition
62}