Skip to main content

sofie_db/
lib.rs

1mod across;
2pub mod action;
3mod aggregate;
4mod arrivals;
5mod behavior;
6mod call;
7#[cfg(any(feature = "contracts", feature = "publishing"))]
8mod change_event;
9#[cfg(any(feature = "history", feature = "publishing"))]
10mod changed;
11#[cfg(feature = "children")]
12mod children;
13#[cfg(feature = "codes")]
14mod codes;
15mod commit;
16#[cfg(feature = "cache")]
17mod commit_hooks;
18mod condition;
19mod context;
20#[cfg(feature = "contracts")]
21mod contracts;
22mod db;
23mod dead_messages;
24mod event;
25mod factory;
26#[cfg(feature = "remote-contracts")]
27mod feed;
28mod file;
29#[cfg(feature = "flags")]
30mod flags;
31mod forgotten;
32mod heard;
33#[cfg(feature = "history")]
34mod history;
35mod id;
36#[cfg(feature = "idempotency")]
37mod idempotency;
38mod input;
39mod join;
40#[cfg(feature = "joins")]
41mod joins;
42mod listening;
43#[cfg(feature = "live")]
44mod live;
45mod load;
46mod messages;
47#[cfg(feature = "metrics")]
48mod metrics;
49mod migrate;
50mod outcome;
51#[cfg(feature = "pagination")]
52mod page;
53#[cfg(feature = "product-reports")]
54mod product_events;
55#[cfg(feature = "retention")]
56mod prune;
57#[cfg(feature = "publishing")]
58mod publishing;
59mod query;
60#[cfg(feature = "raw-sql")]
61mod raw;
62mod read;
63#[cfg(feature = "etag")]
64mod read_versions;
65#[cfg(feature = "remote-contracts")]
66pub mod remote;
67mod reply;
68#[cfg(any(
69    feature = "flags",
70    feature = "publishing",
71    feature = "resources",
72    feature = "soft-delete"
73))]
74mod requested;
75mod rows;
76mod schema_check;
77mod seam;
78#[cfg(feature = "search")]
79mod search;
80mod selection;
81#[cfg(feature = "shield")]
82mod shield;
83#[cfg(feature = "soft-delete")]
84mod soft_delete;
85mod sql;
86mod statement;
87#[cfg(feature = "streams")]
88mod stream;
89mod trace;
90mod type_cache;
91mod unit_of_work;
92pub mod worker;
93
94pub use across::{Across, Guard, GuardCheck};
95pub use aggregate::{
96    Aggregate, Field, JsonOf, JsonProbe, Meta, RaisedEvent, ReadsNoText, ReadsText, Serializes,
97    SerializesNot, Source, TextOf, WritesJson, WritesNoJson, child_tables, read_columns,
98    sensitive_count, sensitive_names,
99};
100#[cfg(feature = "testing")]
101pub use arrivals::{keep_raised, raised};
102pub use behavior::{Behavior, Timestamped, Timestamps, Uses, Versioned, Write};
103pub use call::{AnyOutcome, Call, Entry, Run, Trigger, erase};
104pub use condition::{Column, Condition, Sort, in_select};
105pub use context::{Context, Resolve, Writes, bind};
106pub use db::Db;
107pub use dead_messages::{DeadMessage, DeadMessages};
108pub use event::Event;
109pub use factory::{Create, Update};
110pub use file::File;
111pub use forgotten::{forget_principal, forgotten, unless_forgotten};
112pub use id::Id;
113pub use input::{
114    FieldNames, Input, InputFields, InputValue, Validate, deserialize_fields, lone_value,
115    optional_lone_value,
116};
117pub use join::join_all;
118pub use listening::{Channel, Listening};
119pub use load::{Load, Select};
120pub use messages::{Actor, Claimed, Fired, MessageKind, MessageSql, Messages, ping_queue};
121#[cfg(feature = "migration-status")]
122pub use migrate::{MigrationState, MigrationStatus, ModuleStatus};
123pub use migrate::{Migrations, PendingMigration, Schema};
124pub use outcome::{Outcome, Plan, ReadOnly, Stamp};
125#[cfg(feature = "pagination")]
126pub use page::*;
127pub use query::Query;
128#[cfg(feature = "raw-sql")]
129pub use raw::Sql;
130pub use read::{Reach, Read};
131#[cfg(feature = "etag")]
132pub use read_versions::{read_cached, read_untracked, reads_so_far, track_reads};
133// Without `etag` nothing is fingerprinted, so a client or cache need not ask which is on.
134#[cfg(not(feature = "etag"))]
135pub const fn read_untracked() {}
136#[cfg(not(feature = "etag"))]
137pub const fn read_cached(_value: &str) {}
138pub use reply::{Reply, ReplyData, Showing};
139pub use rows::{Decoding, column_types, query_decoded, query_values, row_values};
140pub use schema_check::{AggregateTable, Catalog, CatalogColumn, Mismatch, MismatchKind};
141#[cfg(any(feature = "cache", feature = "live"))]
142pub use seam::Notifications;
143pub use seam::{
144    BoxFuture, Dialect, Driver, Engine, ExpectedRows, MigrationsLock, PoolSettings,
145    REFERENCE_REFUSAL, RowSink, Step, UniqueViolation, Unmet, Wakeups, check_refusal,
146    exclusion_refusal,
147};
148pub use selection::Selected;
149pub use sofie_core::Uuid;
150#[cfg(feature = "streams")]
151pub use stream::Stream;
152pub use trace::traced_statement;
153pub use unit_of_work::refuse_unlisted_move;
154
155#[cfg(feature = "children")]
156pub use children::{
157    Child, ChildRows, ChildTable, Children, owned_through, refuse_parent_beyond_reach,
158};
159#[cfg(feature = "codes")]
160pub use codes::{Coded, Slugged, Slugs, UniqueCode};
161#[cfg(feature = "cache")]
162pub use commit_hooks::{ChangedRecord, CommitHook, add_commit_hook, cache_driver, commit_hook};
163#[cfg(feature = "contracts")]
164pub use contracts::*;
165#[cfg(feature = "remote-contracts")]
166pub use feed::{
167    FEED_PAGE, FeedEntry, FeedSource, FeedSql, feed_cursor, keeps_feed, read_feed, receive_feed,
168};
169#[cfg(feature = "flags")]
170pub use flags::{Activates, Active, Default, Defaults, active};
171#[cfg(feature = "history")]
172pub use history::{Audited, Authored, Change, ChangeKind, History, RecordsChanges, history_of};
173#[cfg(feature = "idempotency")]
174pub use idempotency::{IdempotencyKey, Keyed, KeyedWork, Work, sweep_expired_keys};
175#[cfg(feature = "joins")]
176pub use joins::{JoinedField, joined, joined_field};
177#[cfg(feature = "live")]
178pub use live::{
179    Announced, Readers, TableChange, Topic, Topics, committed_changes, hears_other_instances,
180    track_topics,
181};
182#[cfg(feature = "product-reports")]
183pub use product_events::{Cohort, Period, ProductEvents, ProductSql, Retention, cohorts};
184#[cfg(feature = "retention")]
185pub use prune::Prune;
186#[cfg(feature = "publishing")]
187pub use publishing::{Broadcasts, PublishLock, Publishes};
188#[cfg(feature = "search-engine")]
189pub use search::{
190    Document, MATCHES_READ, Reindexing, SearchEngine, index_searches, install_search,
191};
192#[cfg(feature = "search")]
193pub use search::{
194    REINDEX_TASK, SEARCH_COLUMN, SearchIndex, SearchTexts, Searched, SearchedField, Searches,
195};
196#[cfg(feature = "shield")]
197pub use shield::{SharedBlock, SharedBlocks, ShieldSql};
198#[cfg(feature = "soft-delete")]
199pub use soft_delete::{SoftDelete, SoftDeletes};