pub const ASD_ROOT: &str = "/asd/v1";
pub fn clean(p: &str) -> String {
p.trim_start_matches('/').replace("//", "/")
}
pub fn code_path(lang: &str, file: &str, symbol_fp: &str) -> String {
format!("{}/code/{}/{}/{}", ASD_ROOT, lang, clean(file), symbol_fp)
}
pub fn qname_index_path(qname: &str) -> String {
format!("{}/index/by-qname/{}", ASD_ROOT, qname)
}
pub fn callers_path(symbol_id: &str) -> String {
format!("{}/index/callers/{}", ASD_ROOT, symbol_id)
}
pub fn callees_path(symbol_id: &str) -> String {
format!("{}/index/callees/{}", ASD_ROOT, symbol_id)
}
pub fn effects_reverse_index_path(effect: &str, symbol_id: &str) -> String {
format!("{}/index/effects-rev/{}/{}", ASD_ROOT, effect, symbol_id)
}
pub fn endpoint_contract_prefix(contract_hash: &str) -> String {
format!("{}/index/endpoints/{}", ASD_ROOT, contract_hash)
}
pub fn endpoint_path(contract_hash: &str, repo_id: &str, symbol_id: &str) -> String {
format!(
"{}/index/endpoints/{}/{}/{}",
ASD_ROOT, contract_hash, repo_id, symbol_id
)
}
pub fn service_manifest_path() -> String {
format!("{}/meta/service-manifest", ASD_ROOT)
}
pub fn edge_evidence_path(from_symbol_id: &str, to_symbol_id: &str) -> String {
format!(
"{}/index/edge-evidence/{}/{}",
ASD_ROOT, from_symbol_id, to_symbol_id
)
}
pub fn edge_evidence_from_prefix(from_symbol_id: &str) -> String {
format!("{}/index/edge-evidence/{}", ASD_ROOT, from_symbol_id)
}
pub fn ledger_root() -> String {
format!("{}/ledger", ASD_ROOT)
}
pub fn ledger_entry_path(symbol_id: &str, entry_id: &str) -> String {
format!("{}/ledger/{}/{}", ASD_ROOT, symbol_id, entry_id)
}
pub fn ledger_symbol_path(symbol_id: &str) -> String {
format!("{}/ledger/{}", ASD_ROOT, symbol_id)
}
pub fn effects_path(symbol_id: &str) -> String {
format!("{}/effects/{}", ASD_ROOT, symbol_id)
}
pub fn traces_path(symbol_id: &str, trace_id: &str) -> String {
format!("{}/traces/{}/{}", ASD_ROOT, symbol_id, trace_id)
}
pub fn file_meta_path(file: &str) -> String {
format!("{}/meta/files/{}", ASD_ROOT, clean(file))
}
pub fn schema_version_path() -> String {
format!("{}/meta/schema-version", ASD_ROOT)
}
pub fn rebind_path(from_symbol_id: &str) -> String {
format!("{}/rebinds/{}", ASD_ROOT, from_symbol_id)
}
pub fn ledger_index_root() -> String {
format!("{}/ledger-idx", ASD_ROOT)
}
pub fn ledger_entry_index_path(entry_id: &str) -> String {
format!("{}/ledger-idx/{}", ASD_ROOT, entry_id)
}
pub fn scratch_root() -> &'static str {
"/asd/v1/scratch"
}
pub fn scratch_entry_path(scratch_id: &str) -> String {
format!("/asd/v1/scratch/{}", scratch_id)
}
pub fn feedback_entry_path(symbol_id: &str, entry_id: &str) -> String {
format!("{}/feedback/{}/{}", ASD_ROOT, symbol_id, entry_id)
}
pub fn feedback_symbol_path(symbol_id: &str) -> String {
format!("{}/feedback/{}", ASD_ROOT, symbol_id)
}