Radish alpha
h
Radicle Heartwood Protocol & Stack
Radicle
Git (anonymous pull)
Log in to clone via SSH
radicle-schemars: Enable output for issues, patches and identity cob actions
✗ CI failure Sebastian Martinez committed 9 months ago
commit e1d600af4289b47af7cc6bdc39cbd1c3e0a13280
parent 2a981d05e6a677df033162f86e6774703ecee4e0
2 failed (2 total) View logs
1 file changed +21 -2
modified crates/radicle-schemars/src/main.rs
@@ -7,8 +7,18 @@ use schemars::{generate::*, *};
const SCHEMA_COMMAND: &str = "radicle::node::Command";
const SCHEMA_COMMAND_RESULT: &str = "radicle::node::CommandResult";
const SCHEMA_PROFILE_CONFIG: &str = "radicle::profile::Config";
-

-
const SCHEMAS: &[&str] = &[SCHEMA_COMMAND, SCHEMA_COMMAND_RESULT, SCHEMA_PROFILE_CONFIG];
+
const SCHEMA_PATCH_ACTION: &str = "radicle::cob::patch::Action";
+
const SCHEMA_ISSUE_ACTION: &str = "radicle::cob::issue::Action";
+
const SCHEMA_IDENTITY_ACTION: &str = "radicle::cob::identity::Action";
+

+
const SCHEMAS: &[&str] = &[
+
    SCHEMA_COMMAND,
+
    SCHEMA_COMMAND_RESULT,
+
    SCHEMA_PROFILE_CONFIG,
+
    SCHEMA_ISSUE_ACTION,
+
    SCHEMA_PATCH_ACTION,
+
    SCHEMA_IDENTITY_ACTION,
+
];

pub static ERROR_MSG: LazyLock<String> = LazyLock::new(|| {
    let schemas = SCHEMAS.to_vec().join("\", \"");
@@ -19,6 +29,9 @@ enum Schema {
    Command,
    CommandResult,
    ProfileConfig,
+
    IssueAction,
+
    PatchAction,
+
    IdentityAction,
}

impl std::str::FromStr for Schema {
@@ -29,6 +42,9 @@ impl std::str::FromStr for Schema {
            SCHEMA_COMMAND => Ok(Self::Command),
            SCHEMA_COMMAND_RESULT => Ok(Self::CommandResult),
            SCHEMA_PROFILE_CONFIG => Ok(Self::ProfileConfig),
+
            SCHEMA_ISSUE_ACTION => Ok(Self::IssueAction),
+
            SCHEMA_PATCH_ACTION => Ok(Self::PatchAction),
+
            SCHEMA_IDENTITY_ACTION => Ok(Self::IdentityAction),
            schema => Err(io::Error::new(
                io::ErrorKind::InvalidInput,
                format!("{schema}: {}", *ERROR_MSG),
@@ -101,6 +117,9 @@ fn print_schema() -> io::Result<()> {
            schema_for!(CommandResult)
        }
        Schema::ProfileConfig => schemars::schema_for!(radicle::profile::Config),
+
        Schema::IssueAction => schemars::schema_for!(radicle::cob::issue::Action),
+
        Schema::PatchAction => schemars::schema_for!(radicle::cob::patch::Action),
+
        Schema::IdentityAction => schemars::schema_for!(radicle::cob::identity::Action),
    };

    serde_json::to_writer_pretty(std::io::stdout(), &schema)?;