pub struct WikiEngine {
pub state: Arc<RwLock<EngineState>>,
}Expand description
Central engine — owns all wiki spaces and exposes index/mount operations.
Cheap to clone (Arc inside). Safe to share across async tasks.
Fields§
§state: Arc<RwLock<EngineState>>Shared engine state protected by a reader-writer lock.
Implementations§
Source§impl WikiEngine
impl WikiEngine
Sourcepub fn build(config_path: &Path) -> Result<Self>
pub fn build(config_path: &Path) -> Result<Self>
Build a WikiEngine from the global config at config_path, mounting all registered wikis.
Sourcepub fn refresh_index(&self, wiki_name: &str) -> Result<UpdateReport>
pub fn refresh_index(&self, wiki_name: &str) -> Result<UpdateReport>
Incrementally update the index from git changes since the last indexed commit.
Sourcepub fn rebuild_index(&self, wiki_name: &str) -> Result<IndexReport>
pub fn rebuild_index(&self, wiki_name: &str) -> Result<IndexReport>
Rebuild the search index from scratch by walking the wiki tree.
Sourcepub fn schema_rebuild(&self, wiki_name: &str) -> Result<()>
pub fn schema_rebuild(&self, wiki_name: &str) -> Result<()>
Smart schema rebuild: checks staleness and does partial rebuild when possible, full rebuild only when necessary.
Sourcepub fn mount_wiki(&self, entry: &WikiEntry) -> Result<()>
pub fn mount_wiki(&self, entry: &WikiEntry) -> Result<()>
Mount a wiki into the running engine. Called by space management tools for hot reload.
Sourcepub fn unmount_wiki(&self, name: &str) -> Result<()>
pub fn unmount_wiki(&self, name: &str) -> Result<()>
Unmount a wiki from the running engine. Refuses if the wiki is
the current default. In-flight requests holding an Arc<SpaceContext>
complete normally.
Sourcepub fn set_default(&self, name: &str) -> Result<()>
pub fn set_default(&self, name: &str) -> Result<()>
Update the default wiki. The wiki must be mounted.
Auto Trait Implementations§
impl Freeze for WikiEngine
impl RefUnwindSafe for WikiEngine
impl Send for WikiEngine
impl Sync for WikiEngine
impl Unpin for WikiEngine
impl UnsafeUnpin for WikiEngine
impl UnwindSafe for WikiEngine
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more