Skip to content

Commit 99174b1

Browse files
committed
move output format to separate module
1 parent 7c55427 commit 99174b1

File tree

3 files changed

+41
-31
lines changed

3 files changed

+41
-31
lines changed

tmc-langs-cli/src/app.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//! Create clap app
2+
13
use clap::{App, Arg, SubCommand};
24

35
pub fn create_app() -> App<'static, 'static> {

tmc-langs-cli/src/main.rs

Lines changed: 5 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
//! CLI client for TMC
22
33
mod app;
4+
mod output;
5+
6+
use output::{Output, OutputResult, Status};
47

58
use anyhow::{Context, Result};
9+
use clap::{Error, ErrorKind};
610
use serde::Serialize;
711
use std::collections::HashMap;
812
use std::env;
@@ -20,36 +24,6 @@ use tmc_langs_util::{task_executor, Language};
2024
use url::Url;
2125
use walkdir::WalkDir;
2226

23-
#[derive(Debug, Serialize)]
24-
#[serde(rename_all = "kebab-case")]
25-
enum Status {
26-
Successful,
27-
Crashed,
28-
InProgress,
29-
}
30-
31-
#[derive(Debug, Serialize)]
32-
#[serde(rename_all = "kebab-case")]
33-
enum OutputResult {
34-
LoggedIn,
35-
LoggedOut,
36-
Error,
37-
Running,
38-
SentData,
39-
ReceivedData,
40-
ExecutedCommand,
41-
}
42-
43-
#[derive(Debug, Serialize)]
44-
#[serde(rename_all = "kebab-case")]
45-
struct Output<T: Serialize> {
46-
status: Status,
47-
message: Option<String>,
48-
result: OutputResult,
49-
percent_done: f64,
50-
data: Option<T>,
51-
}
52-
5327
#[quit::main]
5428
fn main() {
5529
env_logger::init();
@@ -409,7 +383,7 @@ fn run() -> Result<()> {
409383
let output = Output::<()> {
410384
status: Status::Successful,
411385
message: None,
412-
result: OutputResult::LoggedOut,
386+
result: OutputResult::NotLoggedIn,
413387
percent_done: 1.0,
414388
data: None,
415389
};

tmc-langs-cli/src/output.rs

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
//! Output format
2+
3+
use serde::Serialize;
4+
5+
#[derive(Debug, Serialize)]
6+
#[serde(rename_all = "kebab-case")]
7+
pub struct Output<T: Serialize> {
8+
pub status: Status,
9+
pub message: Option<String>,
10+
pub result: OutputResult,
11+
pub percent_done: f64,
12+
pub data: Option<T>,
13+
}
14+
15+
#[derive(Debug, Serialize)]
16+
#[serde(rename_all = "kebab-case")]
17+
pub enum Status {
18+
Successful,
19+
Crashed,
20+
InProgress,
21+
}
22+
23+
#[derive(Debug, Serialize)]
24+
#[serde(rename_all = "kebab-case")]
25+
pub enum OutputResult {
26+
LoggedIn,
27+
LoggedOut,
28+
NotLoggedIn,
29+
Error,
30+
Running,
31+
SentData,
32+
ReceivedData,
33+
ExecutedCommand,
34+
}

0 commit comments

Comments
 (0)