qubit_mime/detector/
repository_mime_detector_provider.rs1use crate::{
13 MimeConfig,
14 MimeDetector,
15 ProviderCreateError,
16 ProviderDescriptor,
17 ProviderRegistryError,
18 RepositoryMimeDetector,
19 ServiceProvider,
20};
21
22use super::MimeDetectorSpec;
23
24#[derive(Debug, Clone, Copy, Default)]
26pub struct RepositoryMimeDetectorProvider;
27
28impl ServiceProvider<MimeDetectorSpec> for RepositoryMimeDetectorProvider {
29 fn descriptor(&self) -> Result<ProviderDescriptor, ProviderRegistryError> {
31 let descriptor = ProviderDescriptor::new("repository")
32 .expect("built-in repository detector provider id should be valid")
33 .with_aliases(&["repository-mime-detector"])
34 .expect("built-in repository detector aliases should be valid");
35 Ok(descriptor)
36 }
37
38 fn create_box(
40 &self,
41 config: &MimeConfig,
42 ) -> Result<Box<dyn MimeDetector>, ProviderCreateError> {
43 Ok(Box::new(RepositoryMimeDetector::from_mime_config(
44 config.clone(),
45 )))
46 }
47}