use gilt::console::Console;
use gilt::rule::Rule;
use gilt::syntax::Syntax;
fn main() {
let mut console = Console::builder().width(80).force_terminal(true).build();
console.print(&Rule::with_title("Rust (line 3 highlighted)"));
let rust_code = r#"use std::collections::HashMap;
fn main() {
let mut scores: HashMap<&str, i32> = HashMap::new();
scores.insert("Alice", 100);
scores.insert("Bob", 85);
for (name, score) in &scores {
println!("{name}: {score}");
}
}"#;
let rust_syntax = Syntax::new(rust_code, "rs")
.with_line_numbers(true)
.with_theme("base16-ocean.dark")
.with_highlight_lines(vec![3]);
console.print(&rust_syntax);
console.print(&Rule::with_title("Python"));
let python_code = r#"from dataclasses import dataclass
@dataclass
class Point:
x: float
y: float
def distance(self, other: "Point") -> float:
return ((self.x - other.x) ** 2 + (self.y - other.y) ** 2) ** 0.5
if __name__ == "__main__":
a = Point(0.0, 0.0)
b = Point(3.0, 4.0)
print(f"Distance: {a.distance(b)}")"#;
let python_syntax = Syntax::new(python_code, "py")
.with_line_numbers(true)
.with_theme("base16-ocean.dark");
console.print(&python_syntax);
}