Cargo Features

wiwi has no features set by default.

[dependencies]
wiwi = { version = "0.7.0-testonly.2", features = ["all", "all-unstable", "auth-unstable", "bigint-unstable", "bitstream-unstable", "chainer-unstable", "clock-timer", "debounce", "h", "hex", "id-unstable", "iter-unstable", "lazy-wrap", "lsl-unstable", "path-unstable", "serialiser-unstable", "string-pool-unstable", "sudoku-unstable", "to-maybeuninit", "z85", "hashbrown", "image", "serde-json", "debounce-dyn-fn", "httparse", "url"] }
all all-unstable? = clock-timer, debounce, h, hex, lazy-wrap, to-maybeuninit, z85

Adding new unstable feature:

  • append -unstable to its name
  • document it in README (note it is unstable by putting parens after name)
  • make sure to add to all-unstable feature
  • check doc cfg_attrs at top of lib.rs
  • make sure to add it to "No features enabled!" thing
  • also check the top of the prelude module
  • make sure the pub mod declaration in lib.rs has the right feature attr on it
  • pub mod declaration should also have the docsrs cfg attr on it In total: the module addition should have 1 change in README, 2 changes in Cargo.toml, 3 changes in lib.rs, 1 change in prelude.rs, and of course the module file itself TODO: write something similar for below graduating feats out of unstable

Graduating feature out of unstable:

  • remove -unstable from feature name below
  • update its entry in README
  • move it from all-unstable to all
  • rename it in cfg_attrs at top of lib.rs
  • rename it in "No features enabled!" thing
  • also check the top of the prelude module
  • update its name in the feature gate / doc attr of its pub mod declaration in lib.rs
  • check/add/update its prelude entries

No longer necessary (but good to do anyways I guess):

  • check workflow files
  • check below docs.rs config
  • NOTE: this is good for the docs deploy workflow

It would be good to occasionally check the dependencies too, update them, remove ones that aren't part of any feature anymore, etc

all-unstable = all, auth-unstable, bigint-unstable, bitstream-unstable, chainer-unstable, id-unstable, iter-unstable, lsl-unstable, path-unstable, serialiser-unstable, string-pool-unstable, sudoku-unstable
auth-unstable all-unstable? = z85

Enables argon2, chacha20poly1305, chrono, p384, rand, thiserror, and zeroize

Affects wiwi::auth

bigint-unstable all-unstable?

Affects wiwi::bigint

bitstream-unstable all-unstable?

base16 = [
"dep:thiserror",
"hex"
]
base32 = [
"dep:thiserror"
]
base64 = [
"dep:thiserror"
]

Affects wiwi::bitstream

chainer-unstable all-unstable? sudoku-unstable? = iter-unstable, to-maybeuninit

Affects wiwi::chainer

clock-timer all?

Enables chrono and tokio

Affects wiwi::clock_timer

debounce all?

Enables chrono and tokio

Affects wiwi::debounce

h all?

Enables thiserror

Affects wiwi::h

hex all? lsl-unstable?

Enables thiserror

Affects wiwi::hex

id-unstable all-unstable? lsl-unstable?

Enables rand

Affects wiwi::id

iter-unstable all-unstable? chainer-unstable? sudoku-unstable?

Affects wiwi::iter

lazy-wrap all? string-pool-unstable?

Enables parking_lot

Affects wiwi::lazy_wrap

lsl-unstable all-unstable? = hex, id-unstable

Enables hashbrown, spin_sleep, and uuid

Affects wiwi::lsl

path-unstable all-unstable?

Affects wiwi::path

serialiser-unstable all-unstable?

Enables ordered-float

Affects wiwi::serialiser

string-pool-unstable all-unstable? = lazy-wrap

Enables hashbrown

Affects wiwi::string_pool

sudoku-unstable all-unstable? = chainer-unstable, iter-unstable

Affects wiwi::sudoku

to-maybeuninit all? chainer-unstable?

Affects wiwi::to_maybeuninit

z85 all? auth-unstable?

ws = [
"dep:httparse",
"dep:thiserror",
"dep:url"
]

Enables thiserror

Affects wiwi::z85

hashbrown

addon features

Enables hashbrown

image

Enables image

serde-json

Enables serde_json

debounce-dyn-fn

config options for certain features
compiler errors if the feature its for isn't enabled

Features from optional dependencies

httparse implicit feature

Enables httparse

httparse:

A tiny, safe, speedy, zero-copy HTTP/1.x parser

url implicit feature

Enables url

url:

URL library for Rust, based on the WHATWG URL Standard