stellation_bridge/links/
mod.rs1use async_trait::async_trait;
6
7use crate::routines::{BridgedMutation, BridgedQuery, MutationResult, QueryResult};
8use crate::BridgeResult;
9mod fetch_link;
10mod local_link;
11mod phantom_link;
12
13pub use fetch_link::FetchLink;
14pub use local_link::LocalLink;
15pub use phantom_link::PhantomLink;
16
17#[async_trait(?Send)]
19pub trait Link: PartialEq + Clone {
20 async fn resolve_query<T>(&self, input: &T::Input) -> QueryResult<T>
22 where
23 T: 'static + BridgedQuery;
24
25 async fn resolve_mutation<T>(&self, input: &T::Input) -> MutationResult<T>
27 where
28 T: 'static + BridgedMutation;
29
30 async fn resolve_encoded(&self, input_buf: &[u8]) -> BridgeResult<Vec<u8>>;
34}