]> git.proxmox.com Git - rustc.git/blame - vendor/thiserror/tests/test_error.rs
Update upstream source from tag 'upstream/1.52.1+dfsg1'
[rustc.git] / vendor / thiserror / tests / test_error.rs
CommitLineData
f20569fa
XL
1#![deny(clippy::all, clippy::pedantic)]
2#![allow(dead_code)]
3
4use std::fmt::{self, Display};
5use std::io;
6use thiserror::Error;
7
8macro_rules! unimplemented_display {
9 ($ty:ty) => {
10 impl Display for $ty {
11 fn fmt(&self, _formatter: &mut fmt::Formatter) -> fmt::Result {
12 unimplemented!()
13 }
14 }
15 };
16}
17
18#[derive(Error, Debug)]
19struct BracedError {
20 msg: String,
21 pos: usize,
22}
23
24#[derive(Error, Debug)]
25struct TupleError(String, usize);
26
27#[derive(Error, Debug)]
28struct UnitError;
29
30#[derive(Error, Debug)]
31struct WithSource {
32 #[source]
33 cause: io::Error,
34}
35
36#[derive(Error, Debug)]
37struct WithAnyhow {
38 #[source]
39 cause: anyhow::Error,
40}
41
42#[derive(Error, Debug)]
43enum EnumError {
44 Braced {
45 #[source]
46 cause: io::Error,
47 },
48 Tuple(#[source] io::Error),
49 Unit,
50}
51
52unimplemented_display!(BracedError);
53unimplemented_display!(TupleError);
54unimplemented_display!(UnitError);
55unimplemented_display!(WithSource);
56unimplemented_display!(WithAnyhow);
57unimplemented_display!(EnumError);