File: without_source.rs

package info (click to toggle)
rust-snafu 0.7.1-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, trixie
  • size: 664 kB
  • sloc: sh: 15; makefile: 4
file content (31 lines) | stat: -rw-r--r-- 645 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#![cfg(feature="std")]
use snafu::prelude::*;
use std::error::Error as StdError;

#[derive(Debug, Snafu)]
#[snafu(display("name: [{}]", name))]
struct Error {
    name: String,
}

type Result<T, E = Error> = std::result::Result<T, E>;

fn example(name: &str) -> Result<()> {
    ensure!(name.is_empty(), Snafu { name });
    Ok(())
}

#[test]
fn implements_error() {
    fn check<T: StdError>() {}
    check::<Error>();

    let name = "must be empty";
    let e = example(name).unwrap_err();
    assert_eq!(e.name, name);

    assert!(e.source().is_none());

    let display = e.to_string();
    assert_eq!(display, "name: [must be empty]");
}