xref: /third_party/rust/crates/unicode-ident/diagram/src/main.rs
  • Home
  • History
  • Annotate Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
  • only in /third_party/rust/crates/unicode-ident/diagram/src/
16e652d70Sopenharmony_ci#![allow(clippy::type_complexity, clippy::uninlined_format_args)]
26e652d70Sopenharmony_ci
36e652d70Sopenharmony_ciuse image::{ImageBuffer, Rgb};
46e652d70Sopenharmony_ciuse std::process;
56e652d70Sopenharmony_ci
66e652d70Sopenharmony_cifn main() {
76e652d70Sopenharmony_ci    let width = 512;
86e652d70Sopenharmony_ci    let height = 400;
96e652d70Sopenharmony_ci    let diagrams: [(&str, fn(char) -> bool); 2] = [
106e652d70Sopenharmony_ci        ("xid_start.png", unicode_ident::is_xid_start),
116e652d70Sopenharmony_ci        ("xid_continue.png", unicode_ident::is_xid_continue),
126e652d70Sopenharmony_ci    ];
136e652d70Sopenharmony_ci    for (name, f) in diagrams {
146e652d70Sopenharmony_ci        let mut imgbuf = ImageBuffer::new(width, height);
156e652d70Sopenharmony_ci        for (col, row, pixel) in imgbuf.enumerate_pixels_mut() {
166e652d70Sopenharmony_ci            *pixel = if char::from_u32(row * width + col).map_or(false, f) {
176e652d70Sopenharmony_ci                Rgb([0u8, 0, 0])
186e652d70Sopenharmony_ci            } else {
196e652d70Sopenharmony_ci                Rgb([255, 255, 255])
206e652d70Sopenharmony_ci            };
216e652d70Sopenharmony_ci        }
226e652d70Sopenharmony_ci        if let Err(err) = imgbuf.save(name) {
236e652d70Sopenharmony_ci            eprintln!("Error: {}", err);
246e652d70Sopenharmony_ci            process::exit(1);
256e652d70Sopenharmony_ci        }
266e652d70Sopenharmony_ci    }
276e652d70Sopenharmony_ci}
28

Indexes created Thu Nov 07 10:32:03 CST 2024