noosphere_into/resolver/
html.rs1use anyhow::{anyhow, Result};
2use async_trait::async_trait;
3use subtext::{Peer, Slashlink};
4
5use crate::{ResolvedLink, Resolver};
6
7#[derive(Clone)]
10pub struct StaticHtmlResolver();
11
12#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
13#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
14impl Resolver for StaticHtmlResolver {
15 async fn resolve(&self, link: &Slashlink) -> Result<ResolvedLink> {
16 match link {
17 Slashlink {
18 slug: Some(slug),
19 peer: Peer::None,
20 } => Ok(ResolvedLink::Slashlink {
21 link: link.clone(),
22 href: format!("/{slug}"),
23 }),
24 _ => Err(anyhow!("Only local slashlinks with slugs are supported")),
25 }
26 }
27}