mod error;
pub mod search;
#[cfg(feature = "analyze")]
pub mod analyze;
#[cfg(feature = "export")]
pub mod export;
#[cfg(feature = "import")]
pub mod import;
#[cfg(feature = "media")]
pub mod media;
#[cfg(feature = "migrate")]
pub mod migrate;
#[cfg(feature = "organize")]
pub mod organize;
#[cfg(feature = "progress")]
pub mod progress;
#[cfg(feature = "enrich")]
pub mod enrich;
#[cfg(feature = "deduplicate")]
pub mod deduplicate;
#[cfg(feature = "backup")]
pub mod backup;
pub use error::{Error, Result};
pub use ankit::{
AnkiClient, CanAddResult, CardAnswer, CardInfo, CardModTime, CardTemplate, ClientBuilder,
CreateModelParams, DeckConfig, DeckStats, DuplicateScope, Ease, FieldFont, FindReplaceParams,
LapseConfig, MediaAttachment, ModelField, ModelStyling, NewCardConfig, Note, NoteBuilder,
NoteField, NoteInfo, NoteModTime, NoteOptions, ReviewConfig, StoreMediaParams,
};
#[cfg(feature = "analyze")]
use analyze::AnalyzeEngine;
#[cfg(feature = "export")]
use export::ExportEngine;
#[cfg(feature = "import")]
use import::ImportEngine;
#[cfg(feature = "media")]
use media::MediaEngine;
#[cfg(feature = "migrate")]
use migrate::MigrateEngine;
#[cfg(feature = "organize")]
use organize::OrganizeEngine;
#[cfg(feature = "progress")]
use progress::ProgressEngine;
#[cfg(feature = "enrich")]
use enrich::EnrichEngine;
#[cfg(feature = "deduplicate")]
use deduplicate::DeduplicateEngine;
#[cfg(feature = "backup")]
use backup::BackupEngine;
use search::SearchEngine;
#[derive(Debug, Clone)]
pub struct Engine {
client: AnkiClient,
}
impl Engine {
pub fn new() -> Self {
Self {
client: AnkiClient::new(),
}
}
pub fn from_client(client: AnkiClient) -> Self {
Self { client }
}
pub fn client(&self) -> &AnkiClient {
&self.client
}
#[cfg(feature = "import")]
pub fn import(&self) -> ImportEngine<'_> {
ImportEngine::new(&self.client)
}
#[cfg(feature = "export")]
pub fn export(&self) -> ExportEngine<'_> {
ExportEngine::new(&self.client)
}
#[cfg(feature = "organize")]
pub fn organize(&self) -> OrganizeEngine<'_> {
OrganizeEngine::new(&self.client)
}
#[cfg(feature = "analyze")]
pub fn analyze(&self) -> AnalyzeEngine<'_> {
AnalyzeEngine::new(&self.client)
}
#[cfg(feature = "migrate")]
pub fn migrate(&self) -> MigrateEngine<'_> {
MigrateEngine::new(&self.client)
}
#[cfg(feature = "media")]
pub fn media(&self) -> MediaEngine<'_> {
MediaEngine::new(&self.client)
}
#[cfg(feature = "progress")]
pub fn progress(&self) -> ProgressEngine<'_> {
ProgressEngine::new(&self.client)
}
#[cfg(feature = "enrich")]
pub fn enrich(&self) -> EnrichEngine<'_> {
EnrichEngine::new(&self.client)
}
#[cfg(feature = "deduplicate")]
pub fn deduplicate(&self) -> DeduplicateEngine<'_> {
DeduplicateEngine::new(&self.client)
}
#[cfg(feature = "backup")]
pub fn backup(&self) -> BackupEngine<'_> {
BackupEngine::new(&self.client)
}
pub fn search(&self) -> SearchEngine<'_> {
SearchEngine::new(&self.client)
}
}
impl Default for Engine {
fn default() -> Self {
Self::new()
}
}