Some More Options

  • 5th Aug 2025
  • 2 min read

Some More Options

Crates.io License Downloads Docs Twitch Status

X | Twitch | Youtube | Mastodon | GitHub | GitHub Sponsors

For when one Option just isn't enough.


Library Contents:

Options

Like the standard Option type but with more variants.

Things

Option types for when you must have a value (No None variant).

SettingValue

Might be useful as field values of settings objects.


Compiler:

Build with the latest stable compiler.


Todo:

  • Add more Option and Thing types with up to eight Some variants.
  • Get all Option and Thing type variants to near feature parity with the standard Option type.
  • Add Serde support
  • Add more documentation
  • Add examples
  • Add tests
  • Clean-up the code

Possibly Todo:

  • Add more SettingValue types with up to four Value variants.

Coding Style

This project uses a coding style the emphasises the use of white space over keeping the line and column counts as low as possible.

So this:

fn foo()
{

    bar();

}

Not this:

fn foo()
{
    bar();
}


License

Licensed under either of:

  • Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0 (see also: https://www.tldrlegal.com/license/apache-license-2-0-apache-2-0))
  • MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT (see also: https://www.tldrlegal.com/license/mit-license))

at your discretion


Contributing

Please clone the repository and create an issue explaining what feature or features you'd like to add or bug or bugs you'd like to fix and perhaps how you intend to implement these additions or fixes. Try to include details though it doesn't need to be exhaustive and we'll take it from there (dependant on availability).


Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.