• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #![allow(clippy::type_complexity, clippy::uninlined_format_args)]
2 
3 use image::{ImageBuffer, Rgb};
4 use std::process;
5 
main()6 fn main() {
7     let width = 512;
8     let height = 400;
9     let diagrams: [(&str, fn(char) -> bool); 2] = [
10         ("xid_start.png", unicode_ident::is_xid_start),
11         ("xid_continue.png", unicode_ident::is_xid_continue),
12     ];
13     for (name, f) in diagrams {
14         let mut imgbuf = ImageBuffer::new(width, height);
15         for (col, row, pixel) in imgbuf.enumerate_pixels_mut() {
16             *pixel = if char::from_u32(row * width + col).map_or(false, f) {
17                 Rgb([0u8, 0, 0])
18             } else {
19                 Rgb([255, 255, 255])
20             };
21         }
22         if let Err(err) = imgbuf.save(name) {
23             eprintln!("Error: {}", err);
24             process::exit(1);
25         }
26     }
27 }
28