pub struct MediaFileWatcher {
pool: Arc<FsWatchPool>,
inner: Mutex<Inner>,
debounce_gens: Mutex<HashMap<PathBuf, Arc<AtomicU64>>>,
broker: Arc<Broker>,
}Fields§
§pool: Arc<FsWatchPool>§inner: Mutex<Inner>§debounce_gens: Mutex<HashMap<PathBuf, Arc<AtomicU64>>>§broker: Arc<Broker>Implementations§
Source§impl MediaFileWatcher
impl MediaFileWatcher
Sourcepub fn new(pool: Arc<FsWatchPool>, broker: Arc<Broker>) -> Arc<Self> ⓘ
pub fn new(pool: Arc<FsWatchPool>, broker: Arc<Broker>) -> Arc<Self> ⓘ
Construct and start the watcher, subscribing to pool’s shared
broadcast stream. Always succeeds — see EditorFileWatcher::new’s
doc comment for why there’s no Option to check anymore.
Sourcepub fn watch_directory(&self, dir: &Path, block_id: &str, extensions: &[String])
pub fn watch_directory(&self, dir: &Path, block_id: &str, extensions: &[String])
Start watching dir on behalf of block_id, notifying only for
files whose extension (lowercase, no dot — e.g. “webm”) appears in
extensions. Idempotent for the same (dir, block_id) — a second call
replaces that block’s extension set rather than adding a duplicate
subscription. Called when a Media pane points at a directory.
Sourcepub fn unwatch_directory(&self, dir: &Path, block_id: &str)
pub fn unwatch_directory(&self, dir: &Path, block_id: &str)
Stop watching dir on behalf of block_id. No-op if that pairing
wasn’t watched. Called on path change / pane dispose.
fn handle_fs_event(self: &Arc<Self>, changed_path: PathBuf)
Auto Trait Implementations§
impl !Freeze for MediaFileWatcher
impl !RefUnwindSafe for MediaFileWatcher
impl !UnwindSafe for MediaFileWatcher
impl Send for MediaFileWatcher
impl Sync for MediaFileWatcher
impl Unpin for MediaFileWatcher
impl UnsafeUnpin for MediaFileWatcher
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
Mutably borrows from an owned value. Read more
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> 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> ⓘ
Converts
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> ⓘ
Converts
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