5 releases (breaking)

0.5.0 Apr 17, 2023
0.4.0 Apr 14, 2023
0.3.0 Apr 14, 2023
0.2.0 Apr 14, 2023
0.1.0 Apr 14, 2023

#643 in Command-line interface

MIT license

89KB
138 lines

clp

Simple library for creating "command line presentations".

clp_presentation example video

Presentations are composed with the slide macro, like so:

use clp::{crossterm, slide, TypewriterPrint, TypewriterPrintStyledContent};
use crossterm::style::{Print, Stylize};
use std::time::Duration;

slide!(
    TypewriterPrint("Welcome to my presentation on ", Duration::from_millis(25)),
    TypewriterPrintStyledContent(
        "command line presentations".bold(),
        Duration::from_millis(50),
    ),
    Print("."),
)
.expect("the first slide should appear");

slide!(TypewriterPrint(
    "\n...there isn't much content on these slides.",
    Duration::from_millis(25),
))
.expect("the second slide should appear");

Features

This package has one feature: spin_sleep. It enables the spin_sleep dependency, which is a more accurate drop-in replacement for the sleep function. It's particularly useful on Windows, which has a notoriously inaccurate sleep function. If you notice that TypewriterPrint or TypewriterPrintStyledContent is slower than expected, you should enable the spin_sleep feature.

cargo add clp -F spin_sleep

Dependencies

~1–12MB
~74K SLoC