use clap::{Subcommand, Parser};
use crate::subgraph::KnownSubgraphs;
#[derive(Subcommand, strum::Display)]
pub enum Sg {
All,
NativeParser,
Legacy,
Chain(Chain),
}
#[derive(Parser)]
pub struct Chain {
id: u64,
}
pub fn dispatch(sg: Sg) -> anyhow::Result<()> {
match sg {
Sg::All => {
for url in KnownSubgraphs::ALL.iter() {
println!("{url}")
}
}
Sg::NativeParser => {
for url in KnownSubgraphs::NP.iter() {
println!("{url}")
}
}
Sg::Legacy => {
for url in KnownSubgraphs::LEGACY.iter() {
println!("{url}")
}
}
Sg::Chain(chain_id) => {
for url in KnownSubgraphs::of_chain(chain_id.id)?.iter() {
println!("{url}")
}
}
};
Ok(())
}