From 62cd7871a295741ad54af50cd1429d42648c2b4a Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Thu, 19 May 2016 16:58:42 +0200 Subject: [PATCH 01/21] Expand error generating to be able to generate modules --- libimagerror/src/error_gen.rs | 83 ++++++++++++++++++++++++++++++++--- 1 file changed, 77 insertions(+), 6 deletions(-) diff --git a/libimagerror/src/error_gen.rs b/libimagerror/src/error_gen.rs index 471c6362..2f22078a 100644 --- a/libimagerror/src/error_gen.rs +++ b/libimagerror/src/error_gen.rs @@ -1,3 +1,22 @@ +#[macro_export] +macro_rules! generate_error_imports { + () => { + use std::error::Error; + use std::fmt::Error as FmtError; + use std::fmt::{Display, Formatter}; + } +} + +#[macro_export] +macro_rules! generate_error_module { + ( $exprs:item ) => { + pub mod error { + generate_error_imports!(); + $exprs + } + } +} + #[macro_export] macro_rules! generate_error_types { ( @@ -71,16 +90,17 @@ macro_rules! generate_error_types { #[cfg(test)] mod test { - use std::error::Error; - use std::fmt::Error as FmtError; - use std::fmt::{Display, Formatter}; - generate_error_types!(TestError, TestErrorKind, - TestErrorKindA => "testerrorkind a", - TestErrorKindB => "testerrorkind B"); + generate_error_module!( + generate_error_types!(TestError, TestErrorKind, + TestErrorKindA => "testerrorkind a", + TestErrorKindB => "testerrorkind B"); + ); #[test] fn test_a() { + use self::error::{TestError, TestErrorKind}; + let kind = TestErrorKind::TestErrorKindA; assert_eq!(String::from("testerrorkind a"), format!("{}", kind)); @@ -90,6 +110,8 @@ mod test { #[test] fn test_b() { + use self::error::{TestError, TestErrorKind}; + let kind = TestErrorKind::TestErrorKindB; assert_eq!(String::from("testerrorkind B"), format!("{}", kind)); @@ -100,6 +122,55 @@ mod test { #[test] fn test_ab() { + use std::error::Error; + use self::error::{TestError, TestErrorKind}; + + let kinda = TestErrorKind::TestErrorKindA; + let kindb = TestErrorKind::TestErrorKindB; + assert_eq!(String::from("testerrorkind a"), format!("{}", kinda)); + assert_eq!(String::from("testerrorkind B"), format!("{}", kindb)); + + let e = TestError::new(kinda, Some(Box::new(TestError::new(kindb, None)))); + assert_eq!(String::from("[testerrorkind a]"), format!("{}", e)); + assert_eq!(TestErrorKind::TestErrorKindA, e.err_type()); + assert_eq!(String::from("[testerrorkind B]"), format!("{}", e.cause().unwrap())); + } + + pub mod anothererrormod { + generate_error_imports!(); + generate_error_types!(TestError, TestErrorKind, + TestErrorKindA => "testerrorkind a", + TestErrorKindB => "testerrorkind B"); + } + + #[test] + fn test_other_a() { + use self::anothererrormod::{TestError, TestErrorKind}; + + let kind = TestErrorKind::TestErrorKindA; + assert_eq!(String::from("testerrorkind a"), format!("{}", kind)); + + let e = TestError::new(kind, None); + assert_eq!(String::from("[testerrorkind a]"), format!("{}", e)); + } + + #[test] + fn test_other_b() { + use self::anothererrormod::{TestError, TestErrorKind}; + + let kind = TestErrorKind::TestErrorKindB; + assert_eq!(String::from("testerrorkind B"), format!("{}", kind)); + + let e = TestError::new(kind, None); + assert_eq!(String::from("[testerrorkind B]"), format!("{}", e)); + + } + + #[test] + fn test_other_ab() { + use std::error::Error; + use self::anothererrormod::{TestError, TestErrorKind}; + let kinda = TestErrorKind::TestErrorKindA; let kindb = TestErrorKind::TestErrorKindB; assert_eq!(String::from("testerrorkind a"), format!("{}", kinda)); From 0315b93c04050909a769c75d735ed71ec8d52b98 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Thu, 19 May 2016 17:05:14 +0200 Subject: [PATCH 02/21] imag-store: Replace error module imports with macro helper --- imag-store/src/error.rs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/imag-store/src/error.rs b/imag-store/src/error.rs index 472070f2..f68d5dc0 100644 --- a/imag-store/src/error.rs +++ b/imag-store/src/error.rs @@ -1,6 +1,4 @@ -use std::error::Error; -use std::fmt::Error as FmtError; -use std::fmt::{Display, Formatter}; +generate_error_imports!(); generate_error_types!(StoreError, StoreErrorKind, BackendError => "Backend Error", From ddcdaca3e825a350a22f0f0d9d9dd83e0accc901 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Thu, 19 May 2016 17:05:14 +0200 Subject: [PATCH 03/21] imag-view: Replace error module imports with macro helper --- imag-view/src/error.rs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/imag-view/src/error.rs b/imag-view/src/error.rs index 64aa071d..077bb9f4 100644 --- a/imag-view/src/error.rs +++ b/imag-view/src/error.rs @@ -1,6 +1,4 @@ -use std::error::Error; -use std::fmt::Error as FmtError; -use std::fmt::{Display, Formatter}; +generate_error_imports!(); generate_error_types!(ViewError, ViewErrorKind, StoreError => "Store error", From 22e015b8fd5805dcfbfde4308e79f4b82224be92 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Thu, 19 May 2016 17:05:14 +0200 Subject: [PATCH 04/21] libimagcounter: Replace error module imports with macro helper --- libimagcounter/src/error.rs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/libimagcounter/src/error.rs b/libimagcounter/src/error.rs index f2e11eeb..d3858d33 100644 --- a/libimagcounter/src/error.rs +++ b/libimagcounter/src/error.rs @@ -1,6 +1,4 @@ -use std::error::Error; -use std::fmt::Error as FmtError; -use std::fmt::{Display, Formatter}; +generate_error_imports!(); generate_error_types!(CounterError, CounterErrorKind, StoreReadError => "Store read error", From 91f26220c65d61ad91a16e4d6befe839b971cc59 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Thu, 19 May 2016 17:05:14 +0200 Subject: [PATCH 05/21] libimagentrylink: Replace error module imports with macro helper --- libimagentrylink/src/error.rs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/libimagentrylink/src/error.rs b/libimagentrylink/src/error.rs index b587b0ef..4cd28512 100644 --- a/libimagentrylink/src/error.rs +++ b/libimagentrylink/src/error.rs @@ -1,6 +1,4 @@ -use std::error::Error; -use std::fmt::Error as FmtError; -use std::fmt::{Display, Formatter}; +generate_error_imports!(); generate_error_types!(LinkError, LinkErrorKind, EntryHeaderReadError => "Error while reading an entry header", From fb79aedbd29a40d8160828fc880774f62bc2dadb Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Thu, 19 May 2016 17:05:14 +0200 Subject: [PATCH 06/21] libimagentrylist: Replace error module imports with macro helper --- libimagentrylist/src/error.rs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/libimagentrylist/src/error.rs b/libimagentrylist/src/error.rs index 15640042..d9843280 100644 --- a/libimagentrylist/src/error.rs +++ b/libimagentrylist/src/error.rs @@ -1,6 +1,4 @@ -use std::error::Error; -use std::fmt::Error as FmtError; -use std::fmt::{Display, Formatter}; +generate_error_imports!(); generate_error_types!(ListError, ListErrorKind, FormatError => "FormatError", From be3d39a65c02f941772046d3413b9384f8f7d464 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Thu, 19 May 2016 17:05:14 +0200 Subject: [PATCH 07/21] libimagentrytag: Replace error module imports with macro helper --- libimagentrytag/src/error.rs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/libimagentrytag/src/error.rs b/libimagentrytag/src/error.rs index 5be68b90..0e8aa3e7 100644 --- a/libimagentrytag/src/error.rs +++ b/libimagentrytag/src/error.rs @@ -1,6 +1,4 @@ -use std::error::Error; -use std::fmt::Error as FmtError; -use std::fmt::{Display, Formatter}; +generate_error_imports!(); generate_error_types!(TagError, TagErrorKind, TagTypeError => "Entry Header Tag Type wrong", From 128bb73a204c66d7a7aabaa57005286129bc1647 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Thu, 19 May 2016 17:05:14 +0200 Subject: [PATCH 08/21] libimagentryview: Replace error module imports with macro helper --- libimagentryview/src/error.rs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/libimagentryview/src/error.rs b/libimagentryview/src/error.rs index 32982342..4f4889d1 100644 --- a/libimagentryview/src/error.rs +++ b/libimagentryview/src/error.rs @@ -1,6 +1,4 @@ -use std::error::Error; -use std::fmt::Error as FmtError; -use std::fmt::{Display, Formatter}; +generate_error_imports!(); generate_error_types!(ViewError, ViewErrorKind, Unknown => "Unknown view error" From 81d46f9e74a47d8081a37424eb4dc862df9fe1f5 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Thu, 19 May 2016 17:05:14 +0200 Subject: [PATCH 09/21] libimaginteraction: Replace error module imports with macro helper --- libimaginteraction/src/error.rs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/libimaginteraction/src/error.rs b/libimaginteraction/src/error.rs index a85c9b25..dd3b5807 100644 --- a/libimaginteraction/src/error.rs +++ b/libimaginteraction/src/error.rs @@ -1,6 +1,4 @@ -use std::error::Error; -use std::fmt::Error as FmtError; -use std::fmt::{Display, Formatter}; +generate_error_imports!(); generate_error_types!(InteractionError, InteractionErrorKind, Unknown => "Unknown Error" From c88d5b308f59f44b6c561e6053edffd746912b0c Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Thu, 19 May 2016 17:05:14 +0200 Subject: [PATCH 10/21] libimagnotes: Replace error module imports with macro helper --- libimagnotes/src/error.rs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/libimagnotes/src/error.rs b/libimagnotes/src/error.rs index 527aa710..d5659622 100644 --- a/libimagnotes/src/error.rs +++ b/libimagnotes/src/error.rs @@ -1,6 +1,4 @@ -use std::error::Error; -use std::fmt::Error as FmtError; -use std::fmt::{Display, Formatter}; +generate_error_imports!(); generate_error_types!(NoteError, NoteErrorKind, StoreWriteError => "Error writing store", From 1dbfb7cf2891138f5ae7b5748e653b9c120c6695 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Thu, 19 May 2016 17:05:14 +0200 Subject: [PATCH 11/21] libimagrt: Replace error module imports with macro helper --- libimagrt/src/error.rs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/libimagrt/src/error.rs b/libimagrt/src/error.rs index 93752552..50d640d7 100644 --- a/libimagrt/src/error.rs +++ b/libimagrt/src/error.rs @@ -1,7 +1,4 @@ -use std::error::Error; -use std::fmt::Display; -use std::fmt::Formatter; -use std::fmt::Error as FmtError; +generate_error_imports!(); use std::io::Error as IOError; generate_error_types!(RuntimeError, RuntimeErrorKind, From cc8642f54f4e9f49b00cc5ffcb3aab4b77aabc6e Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Thu, 19 May 2016 17:05:14 +0200 Subject: [PATCH 12/21] libimagstore: Replace error module imports with macro helper --- libimagstore/src/error.rs | 4 +--- libimagstore/src/hook/error.rs | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/libimagstore/src/error.rs b/libimagstore/src/error.rs index ad36963e..3e32bf96 100644 --- a/libimagstore/src/error.rs +++ b/libimagstore/src/error.rs @@ -1,6 +1,4 @@ -use std::error::Error; -use std::fmt::Error as FmtError; -use std::fmt::{Display, Formatter}; +generate_error_imports!(); use std::convert::From; generate_error_types!(StoreError, StoreErrorKind, diff --git a/libimagstore/src/hook/error.rs b/libimagstore/src/hook/error.rs index ec06dd98..e55c2b8f 100644 --- a/libimagstore/src/hook/error.rs +++ b/libimagstore/src/hook/error.rs @@ -1,6 +1,4 @@ -use std::error::Error; -use std::fmt::Error as FmtError; -use std::fmt::{Display, Formatter}; +generate_error_imports!(); use std::convert::Into; generate_error_types!(HookError, HookErrorKind, From 6bc5099accf8a1404d74700ba128512f0d217516 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Thu, 19 May 2016 17:11:18 +0200 Subject: [PATCH 13/21] imag-store: use generate_error_module!() macro and reexport generated types --- imag-store/src/error.rs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/imag-store/src/error.rs b/imag-store/src/error.rs index f68d5dc0..ae9162f0 100644 --- a/imag-store/src/error.rs +++ b/imag-store/src/error.rs @@ -1,7 +1,10 @@ -generate_error_imports!(); - -generate_error_types!(StoreError, StoreErrorKind, - BackendError => "Backend Error", - NoCommandlineCall => "No commandline call" +generate_error_module!( + generate_error_types!(StoreError, StoreErrorKind, + BackendError => "Backend Error", + NoCommandlineCall => "No commandline call" + ); ); +pub use self::error::StoreError; +pub use self::error::StoreErrorKind; + From 537fe88e13f0356bcf54f1f2109ca812097914a0 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Thu, 19 May 2016 17:11:18 +0200 Subject: [PATCH 14/21] imag-view: use generate_error_module!() macro and reexport generated types --- imag-view/src/error.rs | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/imag-view/src/error.rs b/imag-view/src/error.rs index 077bb9f4..77c7b95d 100644 --- a/imag-view/src/error.rs +++ b/imag-view/src/error.rs @@ -1,9 +1,12 @@ -generate_error_imports!(); - -generate_error_types!(ViewError, ViewErrorKind, - StoreError => "Store error", - NoVersion => "No version specified", - PatternError => "Error in Pattern", - GlobBuildError => "Could not build glob() Argument" +generate_error_module!( + generate_error_types!(ViewError, ViewErrorKind, + StoreError => "Store error", + NoVersion => "No version specified", + PatternError => "Error in Pattern", + GlobBuildError => "Could not build glob() Argument" + ); ); +pub use self::error::ViewError; +pub use self::error::ViewErrorKind; + From d3dc4eb57d77a7d77131986466a6c13014042f41 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Thu, 19 May 2016 17:11:18 +0200 Subject: [PATCH 15/21] libimagcounter: use generate_error_module!() macro and reexport generated types --- libimagcounter/src/error.rs | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/libimagcounter/src/error.rs b/libimagcounter/src/error.rs index d3858d33..e8016fb6 100644 --- a/libimagcounter/src/error.rs +++ b/libimagcounter/src/error.rs @@ -1,9 +1,12 @@ -generate_error_imports!(); - -generate_error_types!(CounterError, CounterErrorKind, - StoreReadError => "Store read error", - StoreWriteError => "Store write error", - HeaderTypeError => "Header type error", - HeaderFieldMissingError => "Header field missing error" +generate_error_module!( + generate_error_types!(CounterError, CounterErrorKind, + StoreReadError => "Store read error", + StoreWriteError => "Store write error", + HeaderTypeError => "Header type error", + HeaderFieldMissingError => "Header field missing error" + ); ); +pub use self::error::CounterError; +pub use self::error::CounterErrorKind; + From cf393b4bde2d36bf30b438692f8535c5e6420151 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Thu, 19 May 2016 17:11:18 +0200 Subject: [PATCH 16/21] libimagentrylink: use generate_error_module!() macro and reexport generated types --- libimagentrylink/src/error.rs | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/libimagentrylink/src/error.rs b/libimagentrylink/src/error.rs index 4cd28512..2802c414 100644 --- a/libimagentrylink/src/error.rs +++ b/libimagentrylink/src/error.rs @@ -1,13 +1,16 @@ -generate_error_imports!(); - -generate_error_types!(LinkError, LinkErrorKind, - EntryHeaderReadError => "Error while reading an entry header", - EntryHeaderWriteError => "Error while writing an entry header", - ExistingLinkTypeWrong => "Existing link entry has wrong type", - LinkTargetDoesNotExist => "Link target does not exist in the store", - InternalConversionError => "Error while converting values internally", - InvalidUri => "URI is not valid", - StoreReadError => "Store read error", - StoreWriteError => "Store write error" +generate_error_module!( + generate_error_types!(LinkError, LinkErrorKind, + EntryHeaderReadError => "Error while reading an entry header", + EntryHeaderWriteError => "Error while writing an entry header", + ExistingLinkTypeWrong => "Existing link entry has wrong type", + LinkTargetDoesNotExist => "Link target does not exist in the store", + InternalConversionError => "Error while converting values internally", + InvalidUri => "URI is not valid", + StoreReadError => "Store read error", + StoreWriteError => "Store write error" + ); ); +pub use self::error::LinkError; +pub use self::error::LinkErrorKind; + From 698c219e04677654be45849fe0a73429860d7e51 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Thu, 19 May 2016 17:11:18 +0200 Subject: [PATCH 17/21] libimagentrylist: use generate_error_module!() macro and reexport generated types --- libimagentrylist/src/error.rs | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/libimagentrylist/src/error.rs b/libimagentrylist/src/error.rs index d9843280..2cd5cde5 100644 --- a/libimagentrylist/src/error.rs +++ b/libimagentrylist/src/error.rs @@ -1,9 +1,12 @@ -generate_error_imports!(); - -generate_error_types!(ListError, ListErrorKind, - FormatError => "FormatError", - EntryError => "EntryError", - IterationError => "IterationError", - CLIError => "No CLI subcommand for listing entries" +generate_error_module!( + generate_error_types!(ListError, ListErrorKind, + FormatError => "FormatError", + EntryError => "EntryError", + IterationError => "IterationError", + CLIError => "No CLI subcommand for listing entries" + ); ); +pub use self::error::ListError; +pub use self::error::ListErrorKind; + From b624ba9c06cb8fbbfe601576e1a99afa8f866b6b Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Thu, 19 May 2016 17:11:18 +0200 Subject: [PATCH 18/21] libimagentrytag: use generate_error_module!() macro and reexport generated types --- libimagentrytag/src/error.rs | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/libimagentrytag/src/error.rs b/libimagentrytag/src/error.rs index 0e8aa3e7..45895019 100644 --- a/libimagentrytag/src/error.rs +++ b/libimagentrytag/src/error.rs @@ -1,9 +1,12 @@ -generate_error_imports!(); - -generate_error_types!(TagError, TagErrorKind, - TagTypeError => "Entry Header Tag Type wrong", - HeaderReadError => "Error while reading entry header", - HeaderWriteError => "Error while writing entry header", - NotATag => "String is not a tag" +generate_error_module!( + generate_error_types!(TagError, TagErrorKind, + TagTypeError => "Entry Header Tag Type wrong", + HeaderReadError => "Error while reading entry header", + HeaderWriteError => "Error while writing entry header", + NotATag => "String is not a tag" + ); ); +pub use self::error::TagError; +pub use self::error::TagErrorKind; + From 21dfa9fba2e4aef994c2b636e081acd99a2c1e52 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Thu, 19 May 2016 17:11:18 +0200 Subject: [PATCH 19/21] libimagentryview: use generate_error_module!() macro and reexport generated types --- libimagentryview/src/error.rs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/libimagentryview/src/error.rs b/libimagentryview/src/error.rs index 4f4889d1..e54d2fcc 100644 --- a/libimagentryview/src/error.rs +++ b/libimagentryview/src/error.rs @@ -1,6 +1,9 @@ -generate_error_imports!(); - -generate_error_types!(ViewError, ViewErrorKind, - Unknown => "Unknown view error" +generate_error_module!( + generate_error_types!(ViewError, ViewErrorKind, + Unknown => "Unknown view error" + ); ); +pub use self::error::ViewError; +pub use self::error::ViewErrorKind; + From d2fa853a08181e540b0abae3da250334cc59b598 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Thu, 19 May 2016 17:11:18 +0200 Subject: [PATCH 20/21] libimaginteraction: use generate_error_module!() macro and reexport generated types --- libimaginteraction/src/error.rs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/libimaginteraction/src/error.rs b/libimaginteraction/src/error.rs index dd3b5807..9285f0fd 100644 --- a/libimaginteraction/src/error.rs +++ b/libimaginteraction/src/error.rs @@ -1,6 +1,9 @@ -generate_error_imports!(); - -generate_error_types!(InteractionError, InteractionErrorKind, - Unknown => "Unknown Error" +generate_error_module!( + generate_error_types!(InteractionError, InteractionErrorKind, + Unknown => "Unknown Error" + ); ); +pub use self::error::InteractionError; +pub use self::error::InteractionErrorKind; + From bfa1fc5c875570c8f251dcb6cf02e3c8fbe1cfbd Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Thu, 19 May 2016 17:11:18 +0200 Subject: [PATCH 21/21] libimagnotes: use generate_error_module!() macro and reexport generated types --- libimagnotes/src/error.rs | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/libimagnotes/src/error.rs b/libimagnotes/src/error.rs index d5659622..bbb02d0c 100644 --- a/libimagnotes/src/error.rs +++ b/libimagnotes/src/error.rs @@ -1,9 +1,12 @@ -generate_error_imports!(); - -generate_error_types!(NoteError, NoteErrorKind, - StoreWriteError => "Error writing store", - StoreReadError => "Error reading store", - HeaderTypeError => "Header type error", - NoteToEntryConversion => "Error converting Note instance to Entry instance" +generate_error_module!( + generate_error_types!(NoteError, NoteErrorKind, + StoreWriteError => "Error writing store", + StoreReadError => "Error reading store", + HeaderTypeError => "Header type error", + NoteToEntryConversion => "Error converting Note instance to Entry instance" + ); ); +pub use self::error::NoteError; +pub use self::error::NoteErrorKind; +