use crate::api::route::RouteSignature;
use crate::route_display;
use super::ReplicationMode;
pub const API_VERSION: &str = "v0alpha1";
pub enum Route {
Fetch,
Push,
Did,
Identify,
Replicate(Option<ReplicationMode>),
}
route_display!(Route);
impl RouteSignature for Route {
fn to_fragment(&self) -> String {
match self {
Route::Fetch => "fetch".into(),
Route::Push => "push".into(),
Route::Did => "did".into(),
Route::Identify => "identify".into(),
Route::Replicate(mode) => match mode {
Some(mode) => format!("replicate/{mode}"),
None => "replicate/:link_or_did".into(),
},
}
}
fn api_version(&self) -> &str {
API_VERSION
}
}