smox 0.5.0

Box that stores small objects inline and bigger objects on the heap using Box, Rc or Arc, with CoW semantic
Documentation
# This is a configuration file for the bacon tool
#
# Bacon repository: https://github.com/Canop/bacon
# Complete help on configuration: https://dystroy.org/bacon/config/
# You can also check bacon's own bacon.toml file
#  as an example: https://github.com/Canop/bacon/blob/main/bacon.toml

default_job = "check"
listen = true
watch = [
      "README.md",
      "COOKBOOK.md"
]


[jobs.check]
command = ["cargo", "check", "--color", "always"]
need_stdout = false

[jobs.check-all]
command = ["cargo", "check", "--all-targets", "--color", "always"]
need_stdout = false

# Run clippy on the default target
[jobs.clippy]
command = [
    "cargo", "clippy",
    "--color", "always",
]
need_stdout = false

# Run clippy on all targets
# To disable some lints, you may change the job this way:
#    [jobs.clippy-all]
#    command = [
#        "cargo", "clippy",
#        "--all-targets",
#        "--color", "always",
#    	 "--",
#    	 "-A", "clippy::bool_to_int_with_if",
#    	 "-A", "clippy::collapsible_if",
#    	 "-A", "clippy::derive_partial_eq_without_eq",
#    ]
# need_stdout = false
[jobs.clippy-all]
command = [
    "cargo", "clippy",
    "--all-targets",
    "--color", "always",
]
need_stdout = false

# This job lets you run
# - all tests: bacon test
# - a specific test: bacon test -- config::test_default_files
# - the tests of a package: bacon test -- -- -p config
[jobs.test]
command = [
    "cargo", "test", "--color", "always",
    "--", "--color", "always", # see https://github.com/Canop/bacon/issues/124
]
need_stdout = true

# This job excludes doctest, it executes much faster
[jobs.fasttest]
command = [
    "cargo", "test", "--color", "always", "--lib", "--tests",
    "--", "--color", "always", # see https://github.com/Canop/bacon/issues/124
]
need_stdout = true

# Doctest only, for when working on the documentation.
[jobs.doctest]
command = [
    "cargo", "test", "--color", "always", "--doc",
    "--", "--color", "always", # see https://github.com/Canop/bacon/issues/124
]
need_stdout = true

[jobs.doc]
command = ["cargo", "doc", "--color", "always", "--no-deps"]
need_stdout = false

# If the doc compiles, then it opens in your browser and bacon switches
# to the previous job
[jobs.doc-open]
command = ["cargo", "doc", "--color", "always", "--no-deps", "--open"]
need_stdout = false
on_success = "back" # so that we don't open the browser at each change

# You can run your application and have the result displayed in bacon,
# *if* it makes sense for this crate.
# Don't forget the `--color always` part or the errors won't be
# properly parsed.
# If your program never stops (eg a server), you may set `background`
# to false to have the cargo run output immediately displayed instead
# of waiting for program's end.
[jobs.run]
command = [
    "cargo", "run",
    "--color", "always",
    # put launch parameters for your program behind a `--` separator
]
need_stdout = true
allow_warnings = true
background = true

# This parameterized job runs the example of your choice, as soon
# as the code compiles.
# Call it as
#    bacon ex -- my-example
[jobs.ex]
command = ["cargo", "run", "--color", "always", "--example"]
need_stdout = true
allow_warnings = true

# runs cargo mutants
[jobs.mutants]
#command = ["cargo", "+nightly", "mutants", "-j", "2", "--all-features", "--colors", "always", "--", "--lib", "--tests", "--bins"]
command = ["cargo", "+nightly", "mutants", "--all-features", "--colors", "always"]
need_stdout = true
allow_warnings = true
background = false
on_change_strategy = "kill_then_restart"

# runs cargo mutants --iterate
[jobs.mutants-iterate]
command = ["cargo", "+nightly", "mutants", "--iterate", "--all-features", "--colors", "always"]
need_stdout = true
allow_warnings = true
background = false
on_change_strategy = "kill_then_restart"

# runs cargo fmt
[jobs.fmt]
command = ["cargo", "+nightly", "fmt"]
need_stdout = false
background = true

# You may define here keybindings that would be specific to
# a project, for example a shortcut to launch a specific job.
# Shortcuts to internal functions (scrolling, toggling, etc.)
# should go in your personal global prefs.toml file instead.
[keybindings]
# alt-m = "job:my-job"
c = "job:clippy-all" # comment this to have 'c' run clippy on only the default target
d = "job:doc"
shift-d = "job:doc-open"
alt-d = "job:doctest"
m = "job:mutants"
shift-m = "job:mutants-iterate"
f = "job:fmt"
shift-f = "job:fasttest"

[exports.locations]
auto = true
exporter = "locations"
path = ".bacon-locations"
line_format = "{kind}@{job}[{item_idx}] {path}:{line}:{column} {message}"