workspace-mgr 0.1.0

Fixed-policy repository workspace manager for coding agents
use serde::Serialize;

use crate::error::{Error, Result};

#[derive(Debug, Clone, Copy, PartialEq, Eq, clap::ValueEnum)]
pub enum Format {
    Human,
    Json,
}

pub fn print_json<T: Serialize>(value: &T) -> Result<()> {
    let text = serde_json::to_string_pretty(value)
        .map_err(|error| Error::message(format!("failed to serialize output: {error}")))?;
    println!("{text}");
    Ok(())
}

pub fn print_human<T: Serialize>(value: &T) -> Result<()> {
    let text = serde_yaml::to_string(value)
        .map_err(|error| Error::message(format!("failed to encode output: {error}")))?;
    print!("{text}");
    Ok(())
}