crate::ix!();
#[async_trait]
impl<P,H:CrateHandleInterface<P>> GenerateDocs for Workspace<P,H>
where for<'async_trait> P: From<PathBuf> + AsRef<Path> + Send + Sync + 'async_trait
{
type Error = WorkspaceError;
async fn generate_docs(&self) -> Result<(), WorkspaceError> {
let workspace_path = self.as_ref();
let output = Command::new("cargo")
.arg("doc")
.current_dir(workspace_path)
.output()
.await
.map_err(|e| CargoDocError::CommandError { io: e.into() })?;
if !output.status.success() {
return Err(WorkspaceError::from(CargoDocError::UnknownError {
stderr: Some(String::from_utf8_lossy(&output.stderr).to_string()),
stdout: Some(String::from_utf8_lossy(&output.stdout).to_string()),
}));
}
Ok(()) }
}