Skip to content

sunsided/merge-whitespace-rs

Folders and files

NameName
Last commit message
Last commit date
Dec 2, 2024
Dec 2, 2024
Dec 2, 2024
Feb 3, 2025
Dec 2, 2024
Dec 2, 2024
Dec 2, 2024
Dec 2, 2024
Dec 2, 2024
Feb 5, 2025
Dec 2, 2024
Dec 2, 2024
May 14, 2024
Dec 2, 2024
May 14, 2024

Repository files navigation

merge_whitespace

Crates.io Crates.io GitHub Workflow Status Safety Dance docs.rs codecov

This crate contains procedural macros for removing multiple consecutive whitespaces from a given string literal, replacing them with a single space.

Example

The example below uses an optional quotation character to keep quoted text ranges un-merged, as well as an optional escape character to ensure that quotation character literals are kept as-is.

use merge_whitespace::merge_whitespace;

const QUERY: &str = merge_whitespace!(r#"
     query {
       users (limit: 1, filter: "bought a 12\" vinyl
                                 named \"spaces  in  space \"") {
         id
         name
         todos(order_by: {created_at: desc}, limit: 5) {
           id
           title
         }
       }
     }
     "#,
     quote_char = '"',
     escape_char = '\\');

#[test]
fn test() {
    assert_eq!(QUERY, r#"query { users (limit: 1, filter: "bought a 12\" vinyl
                                 named \"spaces  in  space \"") { id name todos(order_by: {created_at: desc}, limit: 5) { id title } } }"#);
}

Alternatively, the merge_whitespace_utils::merge_whitespace function can be used to process variable input.