forked from mirrors/gecko-dev
		
	Differential Revision: https://phabricator.services.mozilla.com/D53964 --HG-- rename : third_party/rust/target-lexicon/host.rs => third_party/rust/target-lexicon-0.8.1/host.rs rename : third_party/rust/target-lexicon/sorted.txt => third_party/rust/target-lexicon-0.8.1/sorted.txt extra : moz-landing-system : lando
		
			
				
	
	
		
			48 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
use std::error::Error as StdError;
 | 
						|
use std::io;
 | 
						|
use thiserror::Error;
 | 
						|
 | 
						|
#[derive(Error, Debug)]
 | 
						|
#[error("implicit source")]
 | 
						|
pub struct ImplicitSource {
 | 
						|
    source: io::Error,
 | 
						|
}
 | 
						|
 | 
						|
#[derive(Error, Debug)]
 | 
						|
#[error("explicit source")]
 | 
						|
pub struct ExplicitSource {
 | 
						|
    source: String,
 | 
						|
    #[source]
 | 
						|
    io: io::Error,
 | 
						|
}
 | 
						|
 | 
						|
#[derive(Error, Debug)]
 | 
						|
#[error("boxed source")]
 | 
						|
pub struct BoxedSource {
 | 
						|
    #[source]
 | 
						|
    source: Box<dyn StdError + Send + 'static>,
 | 
						|
}
 | 
						|
 | 
						|
#[test]
 | 
						|
fn test_implicit_source() {
 | 
						|
    let io = io::Error::new(io::ErrorKind::Other, "oh no!");
 | 
						|
    let error = ImplicitSource { source: io };
 | 
						|
    error.source().unwrap().downcast_ref::<io::Error>().unwrap();
 | 
						|
}
 | 
						|
 | 
						|
#[test]
 | 
						|
fn test_explicit_source() {
 | 
						|
    let io = io::Error::new(io::ErrorKind::Other, "oh no!");
 | 
						|
    let error = ExplicitSource {
 | 
						|
        source: String::new(),
 | 
						|
        io,
 | 
						|
    };
 | 
						|
    error.source().unwrap().downcast_ref::<io::Error>().unwrap();
 | 
						|
}
 | 
						|
 | 
						|
#[test]
 | 
						|
fn test_boxed_source() {
 | 
						|
    let source = Box::new(io::Error::new(io::ErrorKind::Other, "oh no!"));
 | 
						|
    let error = BoxedSource { source };
 | 
						|
    error.source().unwrap().downcast_ref::<io::Error>().unwrap();
 | 
						|
}
 |