cruiser 0.2.0

Solana code generation
Documentation
[tasks.clean]
workspace = false
command = "cargo"
args = ["clean"]

[tasks.fmt]
workspace = false
install_crate = "rustfmt"
command = "cargo"
args = ["fmt", "--all", "--", "--emit=files"]

[tasks.check_fmt]
workspace = false
install_crate = "rustfmt"
command = "cargo"
args = ["fmt", "--all", "--", "--check"]

[tasks.check_escrow_example]
workspace = false
script = "cargo run -p check_all -- -p escrow_example -f entrypoint:processor -f processor -f cpi -f client:cpi"

[tasks.check_cruiser]
workspace = false
script = "cargo run -p check_all -- -p cruiser -f client -f testing:client -f experimental:small_vec,interface -f spl-token -f small_vec -f interface"

[tasks.check_all]
workspace = false
dependencies = [
    "check_escrow_example",
    "check_cruiser",
]

[tasks.doc]
workspace = false
env = { "RUSTDOCFLAGS" = "-D warnings" }
script = "cargo doc --all-features"

[tasks.test_easy_proc_common]
workspace = false
script = "cargo test -p easy_proc_common --all-features"

[tasks.test_easy_proc_derive]
workspace = false
script = "cargo test -p easy_proc_derive --all-features"

[tasks.test_easy_proc]
workspace = false
script = "cargo test -p easy_proc --all-features"

[tasks.test_escrow_example]
workspace = false
alias = "other_test_escrow_example"
windows_alias = "windows_test_escrow_example"

[tasks.other_test_escrow_example]
workspace = false
script = "cargo test -p escrow_example --all-features"

[tasks.windows_test_escrow_example]
workspace = false
env = { "HOME" = "C:\\Users\\${USERNAME}"}
script = "cargo test -p escrow_example --all-features"

[tasks.test_cruiser_derive]
workspace = false
script = "cargo test -p cruiser_derive --all-features"

[tasks.test_cruiser]
workspace = false
script = "cargo test -p cruiser --all-features"

[tasks.test_all]
workspace = false
dependencies = [
    "test_easy_proc_common",
    "test_easy_proc_derive",
    "test_easy_proc",
    "test_escrow_example",
    "test_cruiser_derive",
    "test_cruiser",
]

[tasks.publish_easy_proc_common]
workspace = false
env = { "PACKAGE" = "easy_proc_common" }
script_runner = "@duckscript"
script = '''
args = array publish -p ${PACKAGE} --all-features

if not is_empty ${PUBLISH_TOKEN}
    array_push ${args} --token ${PUBLISH_TOKEN}
end
if not is_empty ${DRY_RUN}
    array_push %{args} --dry-run
end

args_string = array_join ${args} " "
echo running cargo %{args_string}
exec --fail-on-error cargo %{args_string}
'''

[tasks.publish_easy_proc_derive]
workspace = false
env = { "PACKAGE" = "easy_proc_derive" }
script_runner = "@duckscript"
script = '''
args = array publish -p ${PACKAGE} --all-features

if not is_empty ${PUBLISH_TOKEN}
    array_push ${args} --token ${PUBLISH_TOKEN}
end
if not is_empty ${DRY_RUN}
    array_push %{args} --dry-run
end

args_string = array_join ${args} " "
echo running cargo %{args_string}
exec --fail-on-error cargo %{args_string}
'''

[tasks.publish_easy_proc]
workspace = false
env = { "PACKAGE" = "easy_proc" }
script_runner = "@duckscript"
script = '''
args = array publish -p ${PACKAGE} --all-features

if not is_empty ${PUBLISH_TOKEN}
    array_push ${args} --token ${PUBLISH_TOKEN}
end
if not is_empty ${DRY_RUN}
    array_push %{args} --dry-run
end

args_string = array_join ${args} " "
echo running cargo %{args_string}
exec --fail-on-error cargo %{args_string}
'''

[tasks.publish_cruiser_derive]
workspace = false
env = { "PACKAGE" = "cruiser_derive" }
script_runner = "@duckscript"
script = '''
args = array publish -p ${PACKAGE} --all-features

if not is_empty ${PUBLISH_TOKEN}
    array_push ${args} --token ${PUBLISH_TOKEN}
end
if not is_empty ${DRY_RUN}
    array_push %{args} --dry-run
end

args_string = array_join ${args} " "
echo running cargo %{args_string}
exec --fail-on-error cargo %{args_string}
'''

[tasks.publish_cruiser]
workspace = false
env = { "PACKAGE" = "cruiser" }
script_runner = "@duckscript"
script = '''
args = array publish -p ${PACKAGE} --all-features

if not is_empty ${PUBLISH_TOKEN}
    array_push ${args} --token ${PUBLISH_TOKEN}
end
if not is_empty ${DRY_RUN}
    array_push %{args} --dry-run
end

args_string = array_join ${args} " "
echo running cargo %{args_string}
exec --fail-on-error cargo %{args_string}
'''

[tasks.verify_all]
workspace = false
dependencies = [
    "check_fmt",
    "check_all",
    "doc",
    "test_all",
]

[tasks.publish_all]
workspace = false
dependencies = [
    "verify_all",
    "publish_easy_proc_common",
    "publish_easy_proc_derive",
    "publish_easy_proc",
    "publish_cruiser_derive",
    "publish_cruiser",
]