pub trait WorkspaceLoader {
// Required methods
fn workspace_root(&self) -> &Path;
fn repo_path(&self) -> &Path;
fn load(
&self,
user_settings: &UserSettings,
store_factories: &StoreFactories,
working_copy_factories: &WorkingCopyFactories,
) -> Result<Workspace, WorkspaceLoadError>;
fn get_working_copy_type(&self) -> Result<String, StoreLoadError>;
fn load_working_copy(
&self,
store: &Arc<Store>,
working_copy_factory: &dyn WorkingCopyFactory,
) -> Result<Box<dyn WorkingCopy>, WorkspaceLoadError>;
}