lotabout.skim/examples/preview_callback.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

29 lines
791 B
Rust

use std::io::Cursor;
use skim::prelude::*;
pub fn main() {
env_logger::init();
let options = SkimOptionsBuilder::default()
.multi(true)
.preview_fn(Some(PreviewCallback::from(|items: Vec<Arc<dyn SkimItem>>| {
items
.iter()
.map(|s| s.text().to_ascii_uppercase().into())
.collect::<Vec<_>>()
})))
.build()
.unwrap();
let item_reader = SkimItemReader::default();
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());
}
}