use gilt::console::Console;
use gilt::group::Group;
use gilt::panel::Panel;
use gilt::style::Style;
use gilt::text::Text;
fn main() {
let mut console = Console::builder()
.width(60)
.force_terminal(true)
.no_color(false)
.build();
let panel1 = Panel::new(Text::new("Hello", Style::null()))
.style(Style::parse("on blue").unwrap_or_else(|_| Style::null()));
let panel2 = Panel::new(Text::new("World", Style::null()))
.style(Style::parse("on red").unwrap_or_else(|_| Style::null()));
let panel1_text = render_to_text(&console, &panel1);
let panel2_text = render_to_text(&console, &panel2);
let group = Group::new(vec![panel1_text, panel2_text]);
let group_text = render_to_text(&console, &group);
let outer = Panel::new(group_text);
console.print(&outer);
}
fn render_to_text(console: &Console, renderable: &dyn gilt::console::Renderable) -> Text {
let segments = console.render(renderable, None);
let mut text = Text::empty();
for seg in &segments {
text.append_str(&seg.text, seg.style.clone());
}
text
}