3 releases

0.2.3 Sep 23, 2024
0.2.1 Sep 23, 2024
0.2.0 Sep 23, 2024

#793 in Text processing

32 downloads per month
Used in sqdj

MIT license

12KB
205 lines

squidge

✨ Overview

squidge shortens delimited data.

use squidge::{Config, shorten_line};

let line = "module/submodule/service/lib.rs";
let result = shorten_line(&Config::default(), &line);
let expected = vec!["m", "s", "s", "lib.rs"];
assert_eq!(result, expected);

squidge's functionality is available as a binary via sqdj.

🛠️ Configuration

squidge can be configured to shorten lines in varying ways, based on its Config.

use squidge::Config;
use regex::Regex;

let re = Regex::new("module").unwrap();
let cfg = Config {
    // Delimiter to split the line on
    delimiter: "\\",
    // Number of elements to ignore (for shortening) from the start
    ignore_first_n: 2,
    // Number of elements to ignore (for shortening) from the end
    ignore_last_n: 2,
    // Optional regex to determine which components to ignore while shortening
    ignore_regex: Some(re),
};

lib.rs:

This crate provides functionality to shorten delimited data based on a given configuration.

Here's a quick example showing its usage:

use squidge::{Config, shorten_line};

let line = "module/submodule/service/lib.rs";
let result = shorten_line(&Config::default(), &line);
let expected = vec!["m", "s", "s", "lib.rs"];
assert_eq!(result, expected);

Dependencies

~2.2–3MB
~54K SLoC