#![deny(clippy::expect_used)]
#![deny(clippy::panic)]
#![deny(clippy::unwrap_used)]
#![cfg_attr(docsrs, feature(doc_cfg, doc_auto_cfg, doc_cfg_hide))]
pub const NAME: &str = "c2pa-rs";
pub const VERSION: &str = env!("CARGO_PKG_VERSION");
pub mod assertions;
pub mod cose_sign;
pub mod create_signer;
pub mod crypto;
pub mod dynamic_assertion;
pub mod identity;
pub mod jumbf_io;
pub mod settings;
pub mod status_tracker;
pub mod validation_results;
pub mod validation_status;
pub use assertions::Relationship;
#[cfg(feature = "v1_api")]
pub use asset_io::{CAIRead, CAIReadWrite};
pub use builder::{Builder, ManifestDefinition};
pub use callback_signer::{CallbackFunc, CallbackSigner};
pub use claim_generator_info::ClaimGeneratorInfo;
pub use crypto::raw_signature::SigningAlg;
pub use error::{Error, Result};
pub use external_manifest::ManifestPatchCallback;
pub use hash_utils::{hash_stream_by_alg, HashRange};
pub use hashed_uri::HashedUri;
pub use ingredient::Ingredient;
#[cfg(feature = "file_io")]
pub use ingredient::{DefaultOptions, IngredientOptions};
pub use manifest::{Manifest, SignatureInfo};
pub use manifest_assertion::{ManifestAssertion, ManifestAssertionKind};
#[cfg(feature = "v1_api")]
pub use manifest_store::ManifestStore;
#[cfg(feature = "v1_api")]
pub use manifest_store_report::ManifestStoreReport;
pub use reader::Reader;
pub use resource_store::{ResourceRef, ResourceStore};
#[cfg(feature = "v1_api")]
pub use signer::RemoteSigner;
pub use signer::{AsyncSigner, Signer};
pub use utils::mime::format_from_path;
pub use validation_results::{ValidationResults, ValidationState};
pub(crate) mod assertion;
pub(crate) mod asset_handlers;
pub(crate) mod asset_io;
pub(crate) mod builder;
pub(crate) mod callback_signer;
pub(crate) mod claim;
pub(crate) mod claim_generator_info;
pub(crate) mod cose_validator;
pub(crate) mod error;
pub(crate) mod external_manifest;
pub(crate) mod hashed_uri;
pub(crate) mod ingredient;
#[allow(dead_code)]
pub(crate) mod jumbf;
pub(crate) mod manifest;
pub(crate) mod manifest_assertion;
#[cfg(feature = "v1_api")]
pub(crate) mod manifest_store;
pub(crate) mod manifest_store_report;
#[allow(dead_code)]
pub(crate) mod reader;
pub(crate) mod resource_store;
pub(crate) mod salt;
pub(crate) mod signer;
pub(crate) mod store;
pub(crate) mod utils;
pub(crate) use utils::{cbor_types, hash_utils};
#[cfg(all(feature = "openssl", feature = "rust_native_crypto"))]
compile_error!("Features 'openssl' and 'rust_native_crypto' cannot be enabled at the same time.");
#[cfg(not(any(feature = "openssl", feature = "rust_native_crypto")))]
compile_error!("Either 'openssl' or 'rust_native_crypto' feature must be enabled.");
#[cfg(all(feature = "openssl", target_arch = "wasm32"))]
compile_error!("Feature 'openssl' is not available for wasm32.");