Skip to main content

cryosnap_core/
lib.rs

1const FONT_HEIGHT_TO_WIDTH_RATIO: f32 = 1.68;
2const DEFAULT_TAB_WIDTH: usize = 4;
3const ANSI_TAB_WIDTH: usize = 6;
4const WINDOW_CONTROLS_HEIGHT: f32 = 18.0;
5const WINDOW_CONTROLS_X_OFFSET: f32 = 12.0;
6const WINDOW_CONTROLS_SPACING: f32 = 19.0;
7const DEFAULT_WEBP_QUALITY: f32 = 90.0;
8const DEFAULT_RASTER_SCALE: f32 = 4.0;
9const DEFAULT_RASTER_MAX_PIXELS: u64 = 8_000_000;
10const DEFAULT_PNG_OPT_LEVEL: u8 = 0;
11const MAX_PNG_OPT_LEVEL: u8 = 6;
12const DEFAULT_PNG_QUANTIZE_QUALITY: u8 = 85;
13const DEFAULT_PNG_QUANTIZE_SPEED: u8 = 4;
14const DEFAULT_PNG_QUANTIZE_DITHER: f32 = 1.0;
15const DEFAULT_TITLE_SIZE: f32 = 12.0;
16const DEFAULT_TITLE_OPACITY: f32 = 0.85;
17const DEFAULT_TITLE_MAX_WIDTH: usize = 80;
18
19mod ansi;
20mod config;
21mod fonts;
22mod input;
23mod layout;
24mod png;
25mod render;
26mod svg;
27mod syntax;
28mod text;
29mod types;
30pub use config::{
31    Border, CjkRegion, Config, Font, FontSystemFallback, PngOptions, PngQuantPreset, PngStrip,
32    RasterBackend, RasterOptions, Shadow, TitleAlign, TitleOptions, TitlePathStyle,
33};
34pub use render::{
35    render, render_png, render_png_from_svg, render_png_webp_from_svg_once, render_svg,
36    render_svg_planned, render_webp, render_webp_from_svg, PlannedSvg,
37};
38pub use types::{Error, InputSource, OutputFormat, RenderRequest, RenderResult, Result};
39
40#[derive(Debug, Clone, Default, PartialEq)]
41struct TextStyle {
42    fg: Option<String>,
43    bg: Option<String>,
44    bold: bool,
45    italic: bool,
46    underline: bool,
47    strike: bool,
48}
49
50#[derive(Debug, Clone, Default)]
51pub(crate) struct Span {
52    pub(crate) text: String,
53    style: TextStyle,
54}
55
56#[derive(Debug, Clone, Default)]
57pub(crate) struct Line {
58    pub(crate) spans: Vec<Span>,
59}
60
61#[cfg(test)]
62mod tests;