pub enum Progress {
FindingTracks,
Indexing {
progress: f32,
},
RebuildingLibrary,
RestoringState,
Done,
Failed(Error),
}Variants§
FindingTracks
First step of the loading process.
The indexer finds files in the music library to index.
This step usually takes under 100ms.
Indexing
Second step of the loading process.
The indexer goes through all of the found files and attempts to gather audio metadata from them. During this process track covers are also cached.
This is the longest step of the loading process. The time it takes to complete this step heavily depends on on whether track covers are already cached (warm start) or not (cold start), and how many tracks are in the library.
Eg. for my 908-track music library, cold start takes about 4.24s, and warm start just 0.26s.
RebuildingLibrary
Third step of the loading process.
After all the tracks have been gathered, the backend rebuilds the virtual library from the track tags. It rebuilds artists, albums and genres, as well as hash maps used to quickly find items in the music library.
Usually takes under a 100ms, depending on library size.
RestoringState
Fourth step of the loading process.
The playlists are restored from disk.
NOTE: This step is skipped if the playlists file is not present.
Done
The loading process has finished.
Failed(Error)
The loading process has failed irrecoverably and will not restart.
Trait Implementations§
impl StructuralPartialEq for Progress
Auto Trait Implementations§
impl Freeze for Progress
impl RefUnwindSafe for Progress
impl Send for Progress
impl Sync for Progress
impl Unpin for Progress
impl UnsafeUnpin for Progress
impl UnwindSafe for Progress
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<S, T> Duplex<S> for Twhere
T: FromSample<S> + ToSample<S>,
impl<T> ErasedDestructor for Twhere
T: 'static,
§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
§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> ⓘ
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