aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/downloader/downloader_interface.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/shirabe/src/downloader/downloader_interface.rs')
-rw-r--r--crates/shirabe/src/downloader/downloader_interface.rs4
1 files changed, 3 insertions, 1 deletions
diff --git a/crates/shirabe/src/downloader/downloader_interface.rs b/crates/shirabe/src/downloader/downloader_interface.rs
index 873438e2..8f2e2c0d 100644
--- a/crates/shirabe/src/downloader/downloader_interface.rs
+++ b/crates/shirabe/src/downloader/downloader_interface.rs
@@ -3,8 +3,10 @@
use crate::package::PackageInterfaceHandle;
use shirabe_php_shim::PhpMixed;
+/// `PhpClass` is a supertrait because `DownloadManager::getDownloaderForPackage` reports
+/// `get_class($downloader)` in its error message, and Rust has no runtime class name.
#[async_trait::async_trait(?Send)]
-pub trait DownloaderInterface: std::fmt::Debug {
+pub trait DownloaderInterface: std::fmt::Debug + shirabe_php_shim::PhpClass {
fn get_installation_source(&self) -> String;
async fn download(