sofie-db 0.4.0

The handler model (inputs, events, replies), aggregates, read models, the query builder, the unit of work, migrations, the worker and the database seam.
Documentation
mod across;
pub mod action;
mod aggregate;
mod arrivals;
mod behavior;
mod call;
#[cfg(any(feature = "contracts", feature = "publishing"))]
mod change_event;
#[cfg(any(feature = "history", feature = "publishing"))]
mod changed;
#[cfg(feature = "children")]
mod children;
#[cfg(feature = "codes")]
mod codes;
mod commit;
#[cfg(feature = "cache")]
mod commit_hooks;
mod condition;
mod context;
#[cfg(feature = "contracts")]
mod contracts;
mod db;
mod dead_messages;
mod event;
mod factory;
#[cfg(feature = "remote-contracts")]
mod feed;
mod file;
#[cfg(feature = "flags")]
mod flags;
mod forgotten;
mod heard;
#[cfg(feature = "history")]
mod history;
mod id;
#[cfg(feature = "idempotency")]
mod idempotency;
mod input;
mod join;
#[cfg(feature = "joins")]
mod joins;
mod listening;
#[cfg(feature = "live")]
mod live;
mod load;
mod messages;
#[cfg(feature = "metrics")]
mod metrics;
mod migrate;
mod outcome;
#[cfg(feature = "pagination")]
mod page;
#[cfg(feature = "product-reports")]
mod product_events;
#[cfg(feature = "retention")]
mod prune;
#[cfg(feature = "publishing")]
mod publishing;
mod query;
#[cfg(feature = "raw-sql")]
mod raw;
mod read;
#[cfg(feature = "etag")]
mod read_versions;
#[cfg(feature = "remote-contracts")]
pub mod remote;
mod reply;
#[cfg(any(
    feature = "flags",
    feature = "publishing",
    feature = "resources",
    feature = "soft-delete"
))]
mod requested;
mod rows;
mod schema_check;
mod seam;
#[cfg(feature = "search")]
mod search;
mod selection;
#[cfg(feature = "shield")]
mod shield;
#[cfg(feature = "soft-delete")]
mod soft_delete;
mod sql;
mod statement;
#[cfg(feature = "streams")]
mod stream;
mod trace;
mod type_cache;
mod unit_of_work;
pub mod worker;

pub use across::{Across, Guard, GuardCheck};
pub use aggregate::{
    Aggregate, Field, JsonOf, JsonProbe, Meta, RaisedEvent, ReadsNoText, ReadsText, Serializes,
    SerializesNot, Source, TextOf, WritesJson, WritesNoJson, child_tables, read_columns,
    sensitive_count, sensitive_names,
};
#[cfg(feature = "testing")]
pub use arrivals::{keep_raised, raised};
pub use behavior::{Behavior, Timestamped, Timestamps, Uses, Versioned, Write};
pub use call::{AnyOutcome, Call, Entry, Run, Trigger, erase};
pub use condition::{Column, Condition, Sort, in_select};
pub use context::{Context, Resolve, Writes, bind};
pub use db::Db;
pub use dead_messages::{DeadMessage, DeadMessages};
pub use event::Event;
pub use factory::{Create, Update};
pub use file::File;
pub use forgotten::{forget_principal, forgotten, unless_forgotten};
pub use id::Id;
pub use input::{
    FieldNames, Input, InputFields, InputValue, Validate, deserialize_fields, lone_value,
    optional_lone_value,
};
pub use join::join_all;
pub use listening::{Channel, Listening};
pub use load::{Load, Select};
pub use messages::{Actor, Claimed, Fired, MessageKind, MessageSql, Messages, ping_queue};
#[cfg(feature = "migration-status")]
pub use migrate::{MigrationState, MigrationStatus, ModuleStatus};
pub use migrate::{Migrations, PendingMigration, Schema};
pub use outcome::{Outcome, Plan, ReadOnly, Stamp};
#[cfg(feature = "pagination")]
pub use page::*;
pub use query::Query;
#[cfg(feature = "raw-sql")]
pub use raw::Sql;
pub use read::{Reach, Read};
#[cfg(feature = "etag")]
pub use read_versions::{read_cached, read_untracked, reads_so_far, track_reads};
// Without `etag` nothing is fingerprinted, so a client or cache need not ask which is on.
#[cfg(not(feature = "etag"))]
pub const fn read_untracked() {}
#[cfg(not(feature = "etag"))]
pub const fn read_cached(_value: &str) {}
pub use reply::{Reply, ReplyData, Showing};
pub use rows::{Decoding, column_types, query_decoded, query_values, row_values};
pub use schema_check::{AggregateTable, Catalog, CatalogColumn, Mismatch, MismatchKind};
#[cfg(any(feature = "cache", feature = "live"))]
pub use seam::Notifications;
pub use seam::{
    BoxFuture, Dialect, Driver, Engine, ExpectedRows, MigrationsLock, PoolSettings,
    REFERENCE_REFUSAL, RowSink, Step, UniqueViolation, Unmet, Wakeups, check_refusal,
    exclusion_refusal,
};
pub use selection::Selected;
pub use sofie_core::Uuid;
#[cfg(feature = "streams")]
pub use stream::Stream;
pub use trace::traced_statement;
pub use unit_of_work::refuse_unlisted_move;

#[cfg(feature = "children")]
pub use children::{
    Child, ChildRows, ChildTable, Children, owned_through, refuse_parent_beyond_reach,
};
#[cfg(feature = "codes")]
pub use codes::{Coded, Slugged, Slugs, UniqueCode};
#[cfg(feature = "cache")]
pub use commit_hooks::{ChangedRecord, CommitHook, add_commit_hook, cache_driver, commit_hook};
#[cfg(feature = "contracts")]
pub use contracts::*;
#[cfg(feature = "remote-contracts")]
pub use feed::{
    FEED_PAGE, FeedEntry, FeedSource, FeedSql, feed_cursor, keeps_feed, read_feed, receive_feed,
};
#[cfg(feature = "flags")]
pub use flags::{Activates, Active, Default, Defaults, active};
#[cfg(feature = "history")]
pub use history::{Audited, Authored, Change, ChangeKind, History, RecordsChanges, history_of};
#[cfg(feature = "idempotency")]
pub use idempotency::{IdempotencyKey, Keyed, KeyedWork, Work, sweep_expired_keys};
#[cfg(feature = "joins")]
pub use joins::{JoinedField, joined, joined_field};
#[cfg(feature = "live")]
pub use live::{
    Announced, Readers, TableChange, Topic, Topics, committed_changes, hears_other_instances,
    track_topics,
};
#[cfg(feature = "product-reports")]
pub use product_events::{Cohort, Period, ProductEvents, ProductSql, Retention, cohorts};
#[cfg(feature = "retention")]
pub use prune::Prune;
#[cfg(feature = "publishing")]
pub use publishing::{Broadcasts, PublishLock, Publishes};
#[cfg(feature = "search-engine")]
pub use search::{
    Document, MATCHES_READ, Reindexing, SearchEngine, index_searches, install_search,
};
#[cfg(feature = "search")]
pub use search::{
    REINDEX_TASK, SEARCH_COLUMN, SearchIndex, SearchTexts, Searched, SearchedField, Searches,
};
#[cfg(feature = "shield")]
pub use shield::{SharedBlock, SharedBlocks, ShieldSql};
#[cfg(feature = "soft-delete")]
pub use soft_delete::{SoftDelete, SoftDeletes};