# HG changeset patch # User Antoine Cezar # Date 2020-06-22 09:49:35 # Node ID bacf6c7ef01bcddb3e918377b47a824e904fbeab # Parent cf04f62d1579bed3781f2ee14673360ebc477199 rhg: add Command trait for subcommands implemented by rhg Normalizes the interface of the cli's commands Differential Revision: https://phab.mercurial-scm.org/D8611 Differential Revision: https://phab.mercurial-scm.org/D8648 diff --git a/rust/rhg/src/commands.rs b/rust/rhg/src/commands.rs new file mode 100644 --- /dev/null +++ b/rust/rhg/src/commands.rs @@ -0,0 +1,8 @@ +use crate::error::CommandError; + +/// The common trait for rhg commands +/// +/// Normalize the interface of the commands provided by rhg +pub trait Command { + fn run(&self) -> Result<(), CommandError>; +} diff --git a/rust/rhg/src/error.rs b/rust/rhg/src/error.rs new file mode 100644 --- /dev/null +++ b/rust/rhg/src/error.rs @@ -0,0 +1,3 @@ +/// The error type for the Command trait +#[derive(Debug, PartialEq)] +pub struct CommandError {} diff --git a/rust/rhg/src/main.rs b/rust/rhg/src/main.rs --- a/rust/rhg/src/main.rs +++ b/rust/rhg/src/main.rs @@ -1,3 +1,5 @@ +mod commands; +mod error; mod exitcode; fn main() {