serde-doc 0.1.0

A tool to generate documentation for Serde serialization and deserialization.
Documentation


use std::io::Write;

use crate::Context;

use super::{Generator, GeneratorConfig};
use anyhow::{Context as _, Result};


pub struct JsonSchemaGenerator {}

impl JsonSchemaGenerator {
    pub fn new() -> Self {
        JsonSchemaGenerator {}
    }
}

impl Generator for JsonSchemaGenerator {
    fn generate(&self, ctx: &Context, config:&GeneratorConfig) -> Result<()> {
        let mut content = String::new();

        match &config.output {
            Some(output) => {
              
                let mut file = std::fs::File::create(&output)?;

                file.write(content.as_bytes())
                    .with_context(|| format!("failed to write to file: {:?}", output))?;
                
            }
            None => {
                println!("{}", content);
            }
        }
        Ok(())
    }
}