#[cfg(not(any(
feature = "yaml",
feature = "json",
feature = "toml",
feature = "fig-lang"
)))]
compile_error!(
"prov needs at least one metadata-format feature enabled: \
`yaml` (the default), `json`, `toml`, or `fig-lang`. \
You have disabled the default feature without selecting a replacement."
);
pub mod about;
pub mod attach;
pub use prov_config as config;
pub mod crossing;
pub mod discovery;
pub use prov_graph::fixity;
#[cfg(test)]
mod fs_faults;
pub mod intake;
pub mod manifest;
pub mod mutate;
pub mod node;
pub mod preset;
pub mod provenance;
pub mod remedy;
pub mod route;
pub mod validate;
pub use prov_config::vocabulary;
pub mod workspace;
pub use prov_graph;
pub use prov_graph::identity;
pub use prov_graph::twig;
pub use prov_graph::{
Addressing, Backlink, Body, BodyLink, Cardinality, CensusEntry, Collision, ContentFormat,
DirEntry, Document, Edge, EmbedStyle, EmbedType, Error, ExtKind, FileType, Format, Graph, Id,
IdIndex, IdStorage, Link, LinkSite, LinkStyle, Manifest, ManifestEntry, Mapping, MetaCarrier,
Metadata, NoIndex, NoPeers, Node, NodeKind, Notation, PathStyle, PeerLocation, PeerLookup,
PeerResolver, ReadScope, ReadSettings, ReadStorage, ReferenceStyle, Relation, RelationSet,
Resolution, Result, StdFs, StructuralFact, Target, TitleIndex, TitleMatch, TreeOptions,
Unconfirmed, Value, Walk, Wikilink, Wrapper, block_on, code_spans, embed_carrier,
embed_style_of, escapes_root, format_link, is_opaque_payload, path_to_title, reachable_set,
render_html, require_whole_file,
};
pub use prov_graph::{
content, document, error, exec, graph, link, memo, meta, peer, relation, title,
};
pub use prov_store::edit;
pub use prov_store::{
Capabilities, Durability, FileIndex, InMemoryFs, InMemoryIndex, IndexStore, Rebase, Storage,
SyncGuarantee,
};
pub mod fs {
pub use prov_graph::fs::{DirEntry, FileType, Metadata, ReadStorage, StdFs};
pub use prov_store::fs::{
Capabilities, Durability, InMemoryFs, Storage, SyncGuarantee, memory,
};
}
pub mod index {
pub use prov_graph::index::{Collision, IdIndex, NoIndex};
pub use prov_store::index::{FileIndex, InMemoryIndex, IndexStore, Rebase};
}
pub use about::AboutContext;
pub mod change {
pub use fs_transaction::change::{ChangeSet, FileOp};
}
pub mod journal {
use prov_graph::error::Result;
use prov_store::fs::Storage;
use std::path::Path;
pub use fs_transaction::journal::{Journal, Recovered, decode, encode};
pub const JOURNAL_NAME: &str = ".prov-journal";
pub fn workspace_journal() -> Journal {
Journal::named(JOURNAL_NAME).expect("JOURNAL_NAME is a single path component")
}
pub async fn recover<FS: Storage>(fs: &FS, root: &Path) -> Result<Recovered> {
Ok(workspace_journal().recover(fs, root).await?)
}
}
pub use config::{
About, ConfigIssue, ConfigIssueKind, FIELD_TYPES, FieldSpec, Fixity, OpenClosed, RelationDef,
RelationStyleConfig, WorkspaceConfig, diagnose, field_type_as_config_str,
field_type_from_config_str, is_valid_scope_path, is_valid_workspace_id,
metadata_format_from_str, metadata_format_str, spec_ahead,
};
pub use crossing::{
Boundary, Crossing, Descent, Federation, Peer, Reached, Refusal, Trust, descend, open_peer,
};
pub use discovery::{Discovered, Discovery, discover};
pub mod views {
pub use prov_views::{
CONDITION_KEYS, Condition, Error, Grain, Group, Grouping, Row, RowSet, Selection,
VIEW_KEYS, VIEWS_KEY, ViewIssue, ViewIssueKind, ViewSpec, diagnose_view, diagnose_views,
group, select, select_with, views_from,
};
}
pub mod exports {
pub use prov_exports::{
EXPORT_KEYS, EXPORTS_KEY, Error, ExportDoc, ExportIssue, ExportIssueKind, ExportPlan,
ExportSpec, GATE_KEYS, Gate, HOLD_VALUE, Withheld, compose, diagnose_export,
diagnose_exports, exports_from, plan,
};
}
pub use fig_schema::FieldType;
pub use fs_transaction::{ChangeSet, FileOp};
pub use identity::{
IdentityPolicy, Minter, NoIdentity, Registration, Trigger, WORKSPACE_NAME_LEN,
mint_workspace_id,
};
pub use intake::{Adoption, PlanOutcome, StructurePlan, SynthNode};
pub use journal::{Recovered, recover};
pub use manifest::{ManifestStatus, ManifestUpdate};
pub use mutate::{ContentState, Created, Diagnosis, Reparented};
pub use prov_exports::ExportSpec;
pub use prov_views::ViewSpec;
pub use provenance::{Actor, Confirmation, Confirmations, Generated, Tier};
pub use remedy::{Fix, Remedy, RemedyKind, Warrant};
pub use route::{Layout, RoutePlan};
pub use validate::{CheckDiff, Finding};
pub use vocabulary::{Term, Vocabulary};
pub use workspace::{Ignore, IgnoreList, Reason, Settings, Workspace, WorkspaceBuilder};