rain_metadata/cli/
schema.rs1pub mod ls;
2pub mod show;
3
4use clap::Subcommand;
5use schemars::schema::RootSchema;
6use schemars::schema_for;
7use show::Show;
8use crate::meta::KnownMeta;
9
10#[derive(Subcommand)]
12pub enum Schema {
13 Ls,
15 Show(Show),
17}
18
19pub fn dispatch(schema: Schema) -> anyhow::Result<()> {
20 match schema {
21 Schema::Ls => ls::ls(),
22 Schema::Show(s) => show::show(s),
23 }
24}
25
26pub fn json_schema(meta: KnownMeta) -> Option<RootSchema> {
30 match meta {
31 KnownMeta::AuthoringMetaV1 => Some(schema_for!(
32 crate::meta::types::authoring::v1::AuthoringMeta
33 )),
34 KnownMeta::OpV1
40 | KnownMeta::SolidityAbiV2
41 | KnownMeta::InterpreterCallerMetaV1
42 | KnownMeta::DotrainV1
43 | KnownMeta::RainlangV1
44 | KnownMeta::AuthoringMetaV2
45 | KnownMeta::ExpressionDeployerV2BytecodeV1
46 | KnownMeta::RainlangSourceV1
47 | KnownMeta::AddressList
48 | KnownMeta::DotrainSourceV1
49 | KnownMeta::OrderBuilderStateV1
50 | KnownMeta::RaindexSignedContextOracleV1 => None,
51 }
52}