pub mod page; pub mod registry; use url::Url; use crate::UnfurlError; use crate::resolver::{BoxFuture, ResolveContext, Resolver}; use crate::types::MessageEmbed; pub use registry::RegistryResolver; pub fn build_chain() -> Vec> { vec![Box::new(RegistryResolver), Box::new(DefaultResolver)] } pub struct DefaultResolver; impl Resolver for DefaultResolver { fn matches(&self, _url: &Url) -> bool { true } fn resolve<'a>( &'a self, context: &'a ResolveContext<'_>, ) -> BoxFuture<'a, Result, UnfurlError>> { Box::pin(async move { let embed = page::resolve_page(context).await?; Ok(embed.into_iter().collect()) }) } }