Skip to main content

json_ld/core/loader/
none.rs

1use rdf_syntax::Iri;
2
3use crate::{JsonLdDocument, JsonLdLoadError};
4
5use super::{AsyncJsonLdLoader, JsonLdLoader};
6
7/// Dummy loader.
8///
9/// A dummy loader that does not load anything.
10/// Can be useful when you know that you will never need to load remote resource.
11///
12/// Raises a [`JsonLdLoadError`] caused by [`CannotLoad`] at every attempt to
13/// load a resource.
14#[derive(Debug, Default)]
15pub struct NoJsonLdLoader;
16
17#[derive(Debug, thiserror::Error)]
18#[error("no loader")]
19pub struct CannotLoad;
20
21impl JsonLdLoader for NoJsonLdLoader {
22	#[inline(always)]
23	fn load(&self, url: &Iri) -> Result<JsonLdDocument, JsonLdLoadError> {
24		Err(JsonLdLoadError::new(url.to_owned(), CannotLoad))
25	}
26}
27
28impl AsyncJsonLdLoader for NoJsonLdLoader {
29	#[inline(always)]
30	async fn async_load(&self, url: &Iri) -> Result<JsonLdDocument, JsonLdLoadError> {
31		Err(JsonLdLoadError::new(url.to_owned(), CannotLoad))
32	}
33}