lotabout.skim/examples/option_builder.rs
LoricAndre c364c5f128
chore: remove workspace (#883)
* chore: remove workspace

* chore: regen dist config

* fix: readme path

* chore: extra-artifacts as files

* chore: generate dist CI

* chore: prepare for prerelease

* chore: switch to include + generate-files

* chore: use run step for generate-files

---------

Co-authored-by: Loric André <loric.andre@noreply.me>
2026-01-13 11:34:10 +01:00

42 lines
1.2 KiB
Rust

extern crate skim;
use skim::prelude::*;
use std::io::Cursor;
pub fn main() {
let item_reader = SkimItemReader::default();
//==================================================
// first run
let options = SkimOptionsBuilder::default()
.height(String::from("50%"))
.multi(true)
.build()
.unwrap();
let input = "aaaaa\nbbbb\nccc";
let items = item_reader.of_bufread(Cursor::new(input));
let selected_items = Skim::run_with(options, Some(items))
.map(|out| out.selected_items)
.unwrap_or_default();
for item in selected_items.iter() {
println!("{}", item.output());
}
//==================================================
// second run
let options = SkimOptionsBuilder::default()
.height(String::from("50%"))
.multi(true)
.build()
.unwrap();
let input = "11111\n22222\n333333333";
let items = item_reader.of_bufread(Cursor::new(input));
let selected_items = Skim::run_with(options, Some(items))
.map(|out| out.selected_items)
.unwrap_or_default();
for item in selected_items.iter() {
println!("{}", item.output());
}
}