token-string 0.8.1

Short (up to 65,535 bytes) immutable strings to e.g. parse tokens, implemented in Rust. These are sometimes called 'German Strings', because Germans have written the paper mentioning them.
Documentation
[tasks.build]
command = "cargo"
args = ["build"]
description = "Build the library"

[tasks.clean]
command = "cargo"
args = ["clean"]
description = "Clean generated files"

[tasks.lint]
command = "cargo"
args = ["clippy"]
description = "Run Clippy"

[tasks.example]
command = "cargo"
args = ["run", "--example", "example"]
description = "Run the example"

[tasks.docs]
command = "cargo"
args = ["doc", "--all-features"]
description = "Generate Documentation"

[tasks.doc-test]
command = "cargo"
args = ["test", "--doc"]
description = "Run Doctests"

[tasks.cov]
command = "cargo"
install_crate = "cargo-llvm-cov"
args = [
    "llvm-cov",
    "nextest",
    "--all-features",
    "--lcov",
    "--output-path",
    "lcov.info",
]
description = "Run Tests with Coverage"

[tasks.test]
command = "cargo"
install_crate = "cargo-nextest"
args = ["nextest", "run", "--all-features"]
description = "Run all tests"

[tasks.mutation]
command = "cargo"
install_crate = "cargo-mutants"
args = ["mutants", "--test-tool=nextest", "--", "--all-features"]
description = "Run Mutation Tests"

[tasks.mutation-iterate]
command = "cargo"
install_crate = "cargo-mutants"
args = ["mutants", "--test-tool=nextest", "--iterate", "--", "--all-features"]
description = "Run only failed Mutation Tests"

[tasks.miri-example]
command = "cargo"
args = ["miri", "run", "--example", "example"]
env = { "MIRIFLAGS" = "-Zmiri-backtrace=full -Zmiri-tree-borrows" }
description = "Run Miri on the example executable"

[tasks.miri]
command = "cargo"
args = ["miri", "nextest", "run", "-j", "10"]
env = { "PROPTEST_DISABLE_FAILURE_PERSISTENCE" = "true", "MIRIFLAGS" = "-Zmiri-env-forward=PROPTEST_DISABLE_FAILURE_PERSISTENCE -Zmiri-backtrace=full -Zmiri-tree-borrows" }
description = "Run Miri on all test. WARNING: takes more than 10 hours!"

[tasks.last-changelog]
script_runner = "@duckscript"
description = "Check the version given as command line argument against the latest version in the change log. If they are the same, write the latest changelog entry to 'last_changelog.md'. This is very fragile to whitespaces in the change log!"
script = '''
full_changelog = readfile CHANGELOG.md
handle = split ${full_changelog} "## Version"
last_w = array_get ${handle} 1
last = trim_start ${last_w}
version_arr = split ${last} " "
version_w = array_get ${version_arr} 0
version = trim ${version_w}
args = array ${CARGO_MAKE_TASK_ARGS}
exp_version = array_get ${args} 0
echo Checking versions ${exp_version} ?= ${version}
if semver_is_equal ${version} ${exp_version}
    echo Versions OK!
    text_arr = array "## Version" ${last}
    text = array_join ${text_arr} ""
    writefile last_changelog.md ${text}
else
    echo Version mismatch, ERROR!
    exit 1
end
'''