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