7 releases

Uses old Rust 2015

0.3.3 Jul 14, 2017
0.3.2 Jul 14, 2017
0.2.1 Jul 13, 2017
0.1.0 Jul 9, 2017

#780 in Debugging

Download history 4/week @ 2023-11-05 12/week @ 2023-11-12 5/week @ 2023-11-19 35/week @ 2023-11-26 3/week @ 2023-12-03 5/week @ 2023-12-10 12/week @ 2023-12-17 18/week @ 2023-12-24 10/week @ 2023-12-31 5/week @ 2024-01-07 12/week @ 2024-01-14 10/week @ 2024-01-21 32/week @ 2024-01-28 3/week @ 2024-02-04 34/week @ 2024-02-11 210/week @ 2024-02-18

280 downloads per month

LGPL-3.0

11KB
117 lines

Build Status

rust-dbc

Simple design by contract macros for Rust

Please see the Documentation or example for more information.

Example

Here is a simple require! example:

    let msg = "This is a test";
    let a = 3;
    require!(false, msg, a);

Outputs:

panic: REQUIRE:
file: src/main.rs:45
vars:
msg="This is a test" a=3
thread 'main' panicked at 'assertion failed: false', src/main.rs:45
stack backtrace:
   0: std::sys::imp::backtrace::tracing::imp::unwind_backtrace
             at /checkout/src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
   1: std::sys_common::backtrace::_print
             at /checkout/src/libstd/sys_common/backtrace.rs:71
   2: std::panicking::default_hook::{{closure}}
             at /checkout/src/libstd/sys_common/backtrace.rs:60
             at /checkout/src/libstd/panicking.rs:355
   3: std::panicking::default_hook
             at /checkout/src/libstd/panicking.rs:371
   4: std::panicking::rust_panic_with_hook
             at /checkout/src/libstd/panicking.rs:549
   5: std::panicking::begin_panic
             at /checkout/src/libstd/panicking.rs:511
   6: example::main
             at ./src/main.rs:45
   7: __rust_maybe_catch_panic
             at /checkout/src/libpanic_unwind/lib.rs:98
   8: std::rt::lang_start
             at /checkout/src/libstd/panicking.rs:433
             at /checkout/src/libstd/panic.rs:361
             at /checkout/src/libstd/rt.rs:57
   9: main
  10: __libc_start_main
  11: _start

No runtime deps