precis-tools 0.1.9

Tools and parsers to generate PRECIS tables from the Unicode Character Database (UCD)
Documentation
use crate::error::Error;
use crate::generators::CodeGen;
use std::fs::File;
use std::io::Write;

/// Generate the `Codepoints` `struct` used by all tables created by all
/// generators.
/// # Example:
/// ```rust
/// pub enum Codepoints {
///   Single(u32),
///   Range(std::ops::RangeInclusive<u32>),
/// }
/// ```
pub struct CodepointsGen {}

impl CodepointsGen {
    /// Creates a new generator for the `Codepoints` `enum`
    pub fn new() -> Self {
        Self {}
    }
}

impl Default for CodepointsGen {
    fn default() -> Self {
        Self::new()
    }
}

impl CodeGen for CodepointsGen {
    fn generate_code(&mut self, file: &mut File) -> Result<(), Error> {
        let template = include_str!("codepoints.template");
        Ok(writeln!(file, "{}", template)?)
    }
}