slippy-cli 0.1.0

AI Linter for Rust projects
use std::io::Write;

#[derive(serde::Deserialize)]
struct Message {
    role: String,
    message: String,
}

fn main() {
    let mut input_string = String::new();
    std::io::stdin().read_line(&mut input_string).unwrap();
    let message: Message = serde_json::from_str(&input_string).unwrap();
    let output = format_message(message);
    std::io::stdout().write_all(output.as_bytes()).unwrap();
}

fn format_message(message: Message) -> String {
    match message.role.as_str() {
        "system" => {
            format!("System message: {}", message.message)
        }
        "user" => {
            format!("User query: {}", message.message)
        }
        "assistant" => {
            format!("Assistant reply: {}", message.message)
        }
        _ => panic!("Unexpected unknown role. Must be one of: system, user, assistant"),
    }
}