Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/blyxyas/abort-if
https://github.com/blyxyas/abort-if
Last synced: 9 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/blyxyas/abort-if
- Owner: blyxyas
- License: mit
- Created: 2022-12-27T23:55:16.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2022-12-28T00:39:14.000Z (almost 2 years ago)
- Last Synced: 2024-09-15T08:26:32.227Z (about 2 months ago)
- Language: Rust
- Size: 10.7 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Abort-if crate
The `abort_if` procedural macro guarantees that a specific function panics if a condition is met.
## Installing
Put this in your `Cargo.toml` file:
```
[dependencies]
abort-if = "0.1.2"
```## Example
You can assure that a function won't be used if feature `x` is enabled
```
use abort_if::abort_if;
#[abort_if(feature = x)]
fn foo() {
using_that_feature();
}fn main() {
foo();
}
```This code will panic if that feature is enabled.
## Features
The default is panicking using `compiler_error!`. This will output the following information:
```
error: Condition was met.
--> src/main.rs:5:1
|
5 | #[abort_if(feature = "x")]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: this error originates in the attribute macro `abort_if` (in Nightly builds, run with -Z macro-backtrace for more info)
```You can use the feature `custom_abort` to write a custom abort macro. When using this feature, make sure to have a `custom_abort_error!` macro with an `expr` as the argument.
---
If you use the `custom_abort` feature, you can also use the `keep_going` one. This feature functions that, if your `custom_abort_error` macro works as a warning instead of a hard error, the code will keep going.