enum-extract-error

Crates.ioenum-extract-error
lib.rsenum-extract-error
version0.1.1
sourcesrc
created_at2023-12-28 18:30:46.768185
updated_at2023-12-30 02:16:55.572992
descriptionA companion crate for `enum-extract` that exports an error type.
homepagehttps://github.com/James-LG/enum-extract
repositoryhttps://github.com/James-LG/enum-extract
max_upload_size
id1082596
size7,493
James (James-LG)

documentation

README

enum-extract

License MIT License Apache 2.0

A deriving proc-macro that generates functions to the inner members of the enum.

This is a heavily modified fork of enum-as-inner. Some of the key differences are listed below:

  1. as_[variant], into_[variant] and as_[variant]_mut methods return a Result that can contain a concrete error type EnumExtractError.
    • The error is returned when the actual variant does not match the expected variant, and it contains both the name of the expected variant and the name of the actual variant for troubleshooting purposes.
    • The error also implements Display with a message of expected {expected}, got {actual}, so that you have a place to start troubleshooting rather than calling unwrap on an Option, or repeatedly writing better error messages by hand.
  2. Added extract_as_[variant], extract_into_[variant] and extract_as_[variant]_mut methods, which panic if the actual variant does not match the expected variant.
    • These are very useful in tests where panicking is acceptable, especially when combined with the better error messages supported by the EnumExtractError struct.

Crates

This project consists of two crates that should be used together. They are separate because crates the export procedural macros can only export procedural macros. They should be treated as a single project, and will therefore be versioned in lock-step.

enum-extract-macro

Dependency Status Crates.io doc.rs

Provides the EnumExtract derive macro that can be used on enums to get as_[variant] functions for each variant, along with other useful functions.

See the documentation for examples and more details.

enum-extract-error

Dependency Status Crates.io doc.rs

Provides the EnumExtractError used as a return value for the as_[variant] functions.

See the documentation for examples and more details.

Commit count: 13

cargo fmt