1#![allow(clippy::complexity)]
4mod codec;
5mod global;
6mod macros;
7
8pub mod migration;
9pub mod observability;
10pub mod reactive;
11pub mod store;
12
13pub type AmeData<T> = <T as AmeState>::Data;
14pub type MigrationResult<T> = StorageResult<T>;
15
16pub use inventory;
17pub use serde;
18pub use uuid;
19
20pub use reactive::{
21 AccessMode, AmeState, AmeStateNode, Change, Field, InterceptDisposer, IntoPipeline, MapChange,
22 MapEntrySignal, Pipeline, Reactive, ReactiveMap, ReactiveMapKey, ReactiveMapValue,
23 ReactiveScope, ReadOnly, ReadOnlyField, ReadOnlyMode, Signal, SignalSubscription,
24 StoreSubscription, Writable, WritableField, WritableMode,
25};
26
27pub mod errors {
28 pub use crate::reactive::error::{FieldError, ReactiveMapError};
29 pub use crate::store::StorageError;
30}
31pub mod stores {
32 pub use crate::store::default::*;
33}
34
35pub use store::{
36 AmeStateSlice, StateScope, StorageResult, StoreEvent, StoreOp, SubscriptionKind,
37 builder::StoreBuilder, config::StoreConfig, default::DefaultStore, join_path,
38};
39
40pub use migration::{MigrationContext, MigrationError, MigrationPlan, MigrationReport};
41
42pub use amethystate_macros::{AmeType, amethystate, migrate};
43pub use global::*;
44
45#[cfg(any(feature = "tauri", feature = "json"))]
46pub use serde_json;
47pub use store::Store;
48
49#[cfg(any(feature = "confy-compat", feature = "confy-compat-0-6"))]
50pub mod confy;
51
52#[cfg(any(feature = "test-utils", test))]
53pub mod test_utils;
54
55#[cfg(feature = "tauri")]
56pub mod tauri {
57 pub use amethystate_core::scheme::*;
58 pub use amethystate_tauri::*;
59}
60
61pub mod core {
62 pub use amethystate_core::*;
63}
64
65#[cfg(any(feature = "async", feature = "tauri"))]
66pub mod client {
67 pub use amethystate_core::AmeBackendAsync;
68 pub use amethystate_core::AmeStateSliceAsync;
69 pub use amethystate_core::async_impl::*;
70
71 use amethystate_core::async_impl::Field as CoreField;
72 use amethystate_core::async_impl::ReactiveMap as CoreReactiveMap;
73 #[cfg(feature = "tauri")]
74 pub type ReactiveMap<K, V, B = crate::tauri::TauriBackend> = CoreReactiveMap<K, V, B>;
75
76 #[cfg(all(feature = "async", not(feature = "tauri")))]
77 pub type ReactiveMap<K, V, B> = CoreReactiveMap<K, V, B>;
78
79 #[cfg(feature = "tauri")]
80 pub type Field<V, B = crate::tauri::TauriBackend> = CoreField<V, B>;
81
82 #[cfg(all(feature = "async", not(feature = "tauri")))]
83 pub type Field<V, B> = CoreField<V, B>;
84}