Cargo Features

[dependencies]
elicitation = { version = "0.9.0", default-features = false, features = ["full", "api", "serde", "serde_json", "chrono", "time", "jiff", "uuid", "rand", "url", "regex", "reqwest", "emit", "verification", "verify-verus", "verify-all", "cli", "dev"] }
default = full

The full feature is set by default whenever elicitation is added without default-features = false somewhere in the dependency tree.

full default dev? = chrono, jiff, rand, regex, reqwest, time, url, uuid

Full feature bundle - all third-party support + rand

api

Feature for tests that call real API (rate-limited)

serde

Enable serde derives on elicitation's own types + erased-serde registry

serde_json

Enable serde_json::Value elicitation

Affects values::ValueObject, values::ValueObject, values::ValueArray, values::ValueArray, values::ValueNonNull, values::ValueNonNull

chrono cli? full

Enable chrono datetime elicitation (+ JsonSchema via schemars/chrono04)

Enables chrono04 of schemars and chrono

DateTime libraries (optional)

Affects elicitation::datetime_chrono, datetimes::DateTimeUtcAfter, datetimes::DateTimeUtcAfter, datetimes::DateTimeUtcBefore, datetimes::DateTimeUtcBefore, datetimes::NaiveDateTimeAfter, datetimes::NaiveDateTimeAfter

time full

Enable time datetime elicitation (schemars has no time support — needs elicit_time)

Enables time

Affects elicitation::datetime_time, datetimes::OffsetDateTimeAfter, datetimes::OffsetDateTimeAfter, datetimes::OffsetDateTimeBefore, datetimes::OffsetDateTimeBefore

jiff full

Enable jiff datetime elicitation (+ JsonSchema via schemars/jiff02)

Enables jiff, jiff02 of schemars

Affects elicitation::datetime_jiff, datetimes::TimestampAfter, datetimes::TimestampAfter, datetimes::TimestampBefore, datetimes::TimestampBefore

uuid full

Enable UUID elicitation (+ JsonSchema via schemars/uuid1)

Enables uuid1 of schemars and uuid

UUID library (optional)

Affects primitives::uuid, uuids::UuidV4, uuids::UuidNonNil

rand full

Enable rand RNG elicitation

Enables rand and rand_chacha

rand:

Random number generation (optional)

Affects elicitation::rand_rng

url full reqwest?

Enable URL elicitation (+ JsonSchema via schemars/url2)

Enables url2 of schemars and url

URL library (optional)

Affects primitives::url

regex full

Enable Regex elicitation

Enables regex

Regex library (optional)

reqwest full = url

Enable reqwest HTTP client elicitation

Enables bytes, http, and reqwest

reqwest:

Reqwest HTTP client (optional)

Affects primitives::http

emit

Code recovery — emit verified workflows as Rust source

Enables prettyplease and syn

Affects elicitation::emit_code

verification verify-verus?

Formal verification support
Core Contract trait only

Affects verification::DEFAULT_STRING_CONTRACT, verification::DEFAULT_I32_CONTRACT, verification::DEFAULT_BOOL_CONTRACT

verify-verus verify-all? = verification

verify-kani lives in elicitation_kani crate (dedicated)
Verus SMT verifier

Affects contracts::verus, verification::DEFAULT_STRING_CONTRACT, verification::DEFAULT_I32_CONTRACT, verification::DEFAULT_BOOL_CONTRACT

verify-all = verify-verus
cli dev? = chrono, clap, csv, shellexpand

CLI and verification runner

Affects elicitation::cli, verification::runner, verification::creusot_runner, verification::verus_runner

Required by the binary

dev = cli, full

Development (all optional features + CLI)

Features from optional dependencies

In crates that don't use the dep: syntax, optional dependencies automatically become Cargo features. These features may have been created by mistake, and this functionality may be removed in the future.

clap cli?
csv cli?
shellexpand cli?