use crate::{endpoint::Endpoint, error::Result, uri::CamelUri};
use async_trait::async_trait;
use std::sync::Arc;
#[async_trait]
pub trait Component: Send + Sync {
fn scheme(&self) -> &str;
async fn create_endpoint(&self, uri: &CamelUri) -> Result<Arc<dyn Endpoint>>;
}