Squashed 'subprojects/thiserror/' content from commit 247eab5

git-subtree-dir: subprojects/thiserror
git-subtree-split: 247eab5d79e27ad28859afdf8bc600a4242829b7
This commit is contained in:
John Turner
2025-11-15 20:18:36 +00:00
commit 6eba9cd92c
118 changed files with 6352 additions and 0 deletions

56
tests/test_error.rs Normal file
View File

@@ -0,0 +1,56 @@
#![allow(dead_code)]
use core::fmt::{self, Display};
use std::io;
use thiserror::Error;
macro_rules! unimplemented_display {
($ty:ty) => {
impl Display for $ty {
fn fmt(&self, _formatter: &mut fmt::Formatter) -> fmt::Result {
unimplemented!()
}
}
};
}
#[derive(Error, Debug)]
struct BracedError {
msg: String,
pos: usize,
}
#[derive(Error, Debug)]
struct TupleError(String, usize);
#[derive(Error, Debug)]
struct UnitError;
#[derive(Error, Debug)]
struct WithSource {
#[source]
cause: io::Error,
}
#[derive(Error, Debug)]
struct WithAnyhow {
#[source]
cause: anyhow::Error,
}
#[derive(Error, Debug)]
enum EnumError {
Braced {
#[source]
cause: io::Error,
},
Tuple(#[source] io::Error),
Unit,
}
unimplemented_display!(BracedError);
unimplemented_display!(TupleError);
unimplemented_display!(UnitError);
unimplemented_display!(WithSource);
unimplemented_display!(WithAnyhow);
unimplemented_display!(EnumError);