cg2 0.3.3

Rust code generator.
Documentation
#![no_std]

#[doc(hidden)]
#[macro_use]
pub extern crate alloc;

mod generator;

mod keyword;
mod punct;

mod flexible;

mod binder;

use core::hint::assert_unchecked;

use alloc::string::String;

pub use generator::Generator;

pub use keyword::Keyword;
pub use punct::Punct;

use flexible::{Flexible, FlexibleList};

fn repeat_char(c: char, n: usize) -> String {
  unsafe { assert_unchecked((c as u32) < 128) };
  c.encode_utf8(&mut [0; 4]).repeat(n)
}

#[macro_export]
macro_rules! f {
  ($($tt:tt)*) => {
    $crate::alloc::format!($($tt)*)
  };
}

#[macro_export]
macro_rules! s {
  ($($tt:tt)*) => {
    $crate::f!("\"{}\"", $crate::f!($($tt)*))
  };
}