2019-03-04 11:38:11 +01:00
|
|
|
# Writing a library
|
|
|
|
|
|
|
|
I would advise to only expose an `mycrate::ErrorKind` and type alias `mycrate::Error` to `ChainError<mycrate::ErrorKind>`
|
|
|
|
so you can tell your library users to use the `.kind()` method as `std::io::Error` does.
|
|
|
|
|
|
|
|
If you later decide to make your own `Error` implementation, your library users don't
|
|
|
|
have to change much or anything.
|
|
|
|
|
|
|
|
~~~rust
|
|
|
|
# #[allow(dead_code)]
|
|
|
|
# #[macro_use]
|
|
|
|
# pub mod chainerror {
|
2020-03-03 14:25:37 +01:00
|
|
|
{{#rustdoc_include ../src/lib.rs:-1}}
|
2019-03-04 11:38:11 +01:00
|
|
|
# }
|
|
|
|
pub mod mycrate {
|
|
|
|
use crate::chainerror::*; // omit the `crate::` part
|
|
|
|
{{#include ../examples/tutorial13.rs:3:}}
|
|
|
|
~~~
|