From a61d51bc8f26aa5d559c3a589bbfa06e96ad57a8 Mon Sep 17 00:00:00 2001 From: Markus Unterwaditzer Date: Tue, 24 Apr 2018 20:17:59 +0200 Subject: [PATCH] Migrate to newer shippai version --- rust/Cargo.lock | 93 ++++++++++++++++++++++++++++--------- rust/Cargo.toml | 2 +- rust/src/errors.rs | 30 ++++-------- rust/src/item.rs | 4 +- rust/src/lib.rs | 3 +- rust/src/storage/exports.rs | 12 ++--- rust/vdirsyncer_rustext.h | 22 ++++++--- setup.py | 2 +- 8 files changed, 107 insertions(+), 61 deletions(-) diff --git a/rust/Cargo.lock b/rust/Cargo.lock index 552dcb1..d5ba4fa 100644 --- a/rust/Cargo.lock +++ b/rust/Cargo.lock @@ -15,12 +15,12 @@ dependencies = [ [[package]] name = "backtrace" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "backtrace-sys 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.39 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.40 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-demangle 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -30,8 +30,8 @@ name = "backtrace-sys" version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.39 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.40 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -60,7 +60,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "cc" -version = "1.0.8" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -81,7 +81,7 @@ name = "error-chain" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "backtrace 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "backtrace 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -89,7 +89,7 @@ name = "failure" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "backtrace 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "backtrace 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "failure_derive 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -132,7 +132,7 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.39" +version = "0.2.40" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -150,28 +150,44 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.39 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.40 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "proc-macro2" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "quote" version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "quote" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "proc-macro2 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "rand" version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.39 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.40 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "remove_dir_all" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "winapi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -195,10 +211,21 @@ dependencies = [ [[package]] name = "shippai" -version = "0.1.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "failure 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "shippai_derive 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "shippai_derive" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "proc-macro2 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -211,6 +238,16 @@ dependencies = [ "unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "syn" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "proc-macro2 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "synom" version = "0.11.3" @@ -234,7 +271,7 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "remove_dir_all 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -247,9 +284,14 @@ name = "unicode-xid" version = "0.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "unicode-xid" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "uuid" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -262,11 +304,11 @@ version = "0.1.0" dependencies = [ "atomicwrites 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "failure 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.39 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.40 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "sha2 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "shippai 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "uuid 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", + "shippai 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "uuid 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "vobject 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -305,13 +347,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [metadata] "checksum arrayref 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "0fd1479b7c29641adbd35ff3b5c293922d696a92f25c8c975da3e0acbc87258f" "checksum atomicwrites 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7739334b1bdd4f80a35a51f4459494e6cd78807cf57bd829e4f01945190b7de6" -"checksum backtrace 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ebbbf59b1c43eefa8c3ede390fcc36820b4999f7914104015be25025e0d62af2" +"checksum backtrace 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ebbe525f66f42d207968308ee86bc2dd60aa5fab535b22e616323a173d097d8e" "checksum backtrace-sys 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "44585761d6161b0f57afc49482ab6bd067e4edef48c12a152c237eb0203f7661" "checksum bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4efd02e230a02e18f92fc2735f44597385ed02ad8f831e7c1c1156ee5e1ab3a5" "checksum bitflags 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b3c30d3802dfb7281680d6285f2ccdaa8c2d8fee41f93805dba5c4cf50dc23cf" "checksum block-buffer 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a076c298b9ecdb530ed9d967e74a6027d6a7478924520acddcddc24c1c8ab3ab" "checksum byte-tools 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "560c32574a12a89ecd91f5e742165893f86e3ab98d21f8ea548658eb9eef5f40" -"checksum cc 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)" = "d9324127e719125ec8a16e6e509abc4c641e773621b50aea695af3f005656d61" +"checksum cc 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)" = "8b9d2900f78631a5876dc5d6c9033ede027253efcd33dd36b1309fc6cab97ee0" "checksum cfg-if 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d4c819a1287eb618df47cc647173c5c4c66ba19d888a6e50d605672aed3140de" "checksum digest 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "00a49051fef47a72c9623101b19bd71924a45cca838826caae3eaa4d00772603" "checksum error-chain 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ff511d5dc435d703f4971bc399647c9bc38e20cb41452e3b9feb4765419ed3f3" @@ -321,22 +363,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" "checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" "checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" "checksum generic-array 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ef25c5683767570c2bbd7deba372926a55eaae9982d7726ee2a1050239d45b9d" -"checksum libc 0.2.39 (registry+https://github.com/rust-lang/crates.io-index)" = "f54263ad99207254cf58b5f701ecb432c717445ea2ee8af387334bdd1a03fdff" +"checksum libc 0.2.40 (registry+https://github.com/rust-lang/crates.io-index)" = "6fd41f331ac7c5b8ac259b8bf82c75c0fb2e469bbf37d2becbba9a6a2221965b" "checksum log 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "89f010e843f2b1a31dbd316b3b8d443758bc634bed37aabade59c686d644e0a2" "checksum nix 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a2c5afeb0198ec7be8569d666644b574345aad2e95a53baf3a532da3e0f3fb32" +"checksum proc-macro2 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b16749538926f394755373f0dfec0852d79b3bd512a5906ceaeb72ee64a4eaa0" "checksum quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a" +"checksum quote 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9949cfe66888ffe1d53e6ec9d9f3b70714083854be20fd5e271b232a017401e8" "checksum rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "eba5f8cb59cc50ed56be8880a5c7b496bfd9bd26394e176bc67884094145c2c5" -"checksum remove_dir_all 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "dfc5b3ce5d5ea144bb04ebd093a9e14e9765bcfec866aecda9b6dec43b3d1e24" +"checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5" "checksum rustc-demangle 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "11fb43a206a04116ffd7cfcf9bcb941f8eb6cc7ff667272246b0a1c74259a3cb" "checksum sha2 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7daca11f2fdb8559c4f6c588386bed5e2ad4b6605c1442935a7f08144a918688" -"checksum shippai 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c342d76b09cc95857d435bb96f03c1eac8218c819e799adcc1225bdc7fe48ede" +"checksum shippai 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c6f9aeb41e06c9d8079d36b997575dc0290b11066c27684c4fb868e429e01b90" +"checksum shippai_derive 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c7a8bd6070ae7fc692908ec3853348566e5c0576c6b9d1a683813430a19b4961" "checksum syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)" = "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad" +"checksum syn 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)" = "91b52877572087400e83d24b9178488541e3d535259e04ff17a63df1e5ceff59" "checksum synom 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6" "checksum synstructure 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3a761d12e6d8dcb4dcf952a7a89b475e3a9d69e4a69307e01a470977642914bd" "checksum tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8" "checksum typenum 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "612d636f949607bdf9b123b4a6f6d966dedf3ff669f7f045890d3a4a73948169" "checksum unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc" -"checksum uuid 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d4670e1e935f7edd193a413f802e2ee52274aed62a09ccaab1656515c9c53a66" +"checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" +"checksum uuid 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8630752f979f1b6b87c49830a5e3784082545de63920d59fbaac252474319447" "checksum vobject 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6041995691036270fabeb41975ca858f3b5113b82eea19a4f276bfb8b32e9ae4" "checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" "checksum winapi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "04e3bd221fcbe8a271359c04f21a76db7d0c6028862d1bb5512d85e1e2eb5bb3" diff --git a/rust/Cargo.toml b/rust/Cargo.toml index 30dd9e0..bc40557 100644 --- a/rust/Cargo.toml +++ b/rust/Cargo.toml @@ -11,7 +11,7 @@ crate-type = ["cdylib"] vobject = "0.4.2" sha2 = "0.7.0" failure = "0.1" -shippai = "0.1.1" +shippai = "0.2" atomicwrites = "0.2.0" uuid = { version = "0.6", features = ["v4"] } libc = "0.2" diff --git a/rust/src/errors.rs b/rust/src/errors.rs index 25b695e..6f56058 100644 --- a/rust/src/errors.rs +++ b/rust/src/errors.rs @@ -2,37 +2,39 @@ use failure; pub type Fallible = Result; -#[derive(Debug, Fail)] +shippai_export!(); + +#[derive(Debug, Fail, Shippai)] #[fail(display = "The item cannot be parsed")] pub struct ItemUnparseable; -#[derive(Debug, Fail)] +#[derive(Debug, Fail, Shippai)] #[fail(display = "Unexpected version {}, expected {}", found, expected)] pub struct UnexpectedVobjectVersion { pub found: String, pub expected: String, } -#[derive(Debug, Fail)] +#[derive(Debug, Fail, Shippai)] #[fail(display = "Unexpected component {}, expected {}", found, expected)] pub struct UnexpectedVobject { pub found: String, pub expected: String, } -#[derive(Debug, Fail)] +#[derive(Debug, Fail, Shippai)] #[fail(display = "Item '{}' not found", href)] pub struct ItemNotFound { pub href: String, } -#[derive(Debug, Fail)] +#[derive(Debug, Fail, Shippai)] #[fail(display = "The href '{}' is already taken", href)] pub struct ItemAlreadyExisting { pub href: String, } -#[derive(Debug, Fail)] +#[derive(Debug, Fail, Shippai)] #[fail(display = "A wrong etag for '{}' was provided. Another client's requests might \ conflict with vdirsyncer.", href)] @@ -40,7 +42,7 @@ pub struct WrongEtag { pub href: String, } -#[derive(Debug, Fail)] +#[derive(Debug, Fail, Shippai)] #[fail(display = "The mtime for '{}' has unexpectedly changed. Please close other programs\ accessing this file.", filepath)] @@ -50,7 +52,7 @@ pub struct MtimeMismatch { pub unsafe fn export_result( res: Result, - c_err: *mut *mut exports::ShippaiError, + c_err: *mut *mut ShippaiError, ) -> Option { match res { Ok(v) => Some(v), @@ -60,15 +62,3 @@ pub unsafe fn export_result( } } } - -pub mod exports { - shippai_export! { - super::ItemUnparseable as ITEM_UNPARSEABLE, - super::UnexpectedVobjectVersion as UNEXPECTED_VOBJECT_VERSION, - super::UnexpectedVobject as UNEXPECTED_VOBJECT, - super::ItemNotFound as ITEM_NOT_FOUND, - super::ItemAlreadyExisting as ITEM_ALREADY_EXISTING, - super::WrongEtag as WRONG_ETAG, - super::MtimeMismatch as MTIME_MISMATCH - } -} diff --git a/rust/src/item.rs b/rust/src/item.rs index b76c2b6..8fe86b2 100644 --- a/rust/src/item.rs +++ b/rust/src/item.rs @@ -227,7 +227,7 @@ pub mod exports { pub unsafe extern "C" fn vdirsyncer_with_uid( c: *mut Item, uid: *const c_char, - err: *mut *mut exports::ShippaiError, + err: *mut *mut ShippaiError, ) -> *mut Item { let uid_cstring = CStr::from_ptr(uid); if let Some(x) = export_result((*c).with_uid(uid_cstring.to_str().unwrap()), err) { @@ -240,7 +240,7 @@ pub mod exports { #[no_mangle] pub unsafe extern "C" fn vdirsyncer_get_hash( c: *mut Item, - err: *mut *mut exports::ShippaiError, + err: *mut *mut ShippaiError, ) -> *const c_char { if let Some(x) = export_result((*c).get_hash(), err) { CString::new(x).unwrap().into_raw() diff --git a/rust/src/lib.rs b/rust/src/lib.rs index a0591e5..80e9d82 100644 --- a/rust/src/lib.rs +++ b/rust/src/lib.rs @@ -12,7 +12,7 @@ extern crate sha2; mod item; mod storage; -mod errors; +pub mod errors; pub mod exports { use std::ffi::CStr; @@ -20,7 +20,6 @@ pub mod exports { pub use super::item::exports::*; pub use super::storage::exports::*; - pub use super::errors::exports::*; #[no_mangle] pub unsafe extern "C" fn vdirsyncer_free_str(s: *const c_char) { diff --git a/rust/src/storage/exports.rs b/rust/src/storage/exports.rs index c063978..e0ba467 100644 --- a/rust/src/storage/exports.rs +++ b/rust/src/storage/exports.rs @@ -15,7 +15,7 @@ pub unsafe extern "C" fn vdirsyncer_storage_free(storage: *mut Box) { #[no_mangle] pub unsafe extern "C" fn vdirsyncer_storage_list( storage: *mut Box, - err: *mut *mut exports::ShippaiError, + err: *mut *mut ShippaiError, ) -> *mut VdirsyncerStorageListing { if let Some(x) = export_result((**storage).list(), err) { Box::into_raw(Box::new(VdirsyncerStorageListing { @@ -32,7 +32,7 @@ pub unsafe extern "C" fn vdirsyncer_storage_list( pub unsafe extern "C" fn vdirsyncer_storage_get( storage: *mut Box, c_href: *const c_char, - err: *mut *mut exports::ShippaiError, + err: *mut *mut ShippaiError, ) -> *mut VdirsyncerStorageGetResult { let href = CStr::from_ptr(c_href); if let Some((item, href)) = export_result((**storage).get(href.to_str().unwrap()), err) { @@ -49,7 +49,7 @@ pub unsafe extern "C" fn vdirsyncer_storage_get( pub unsafe extern "C" fn vdirsyncer_storage_upload( storage: *mut Box, item: *mut Item, - err: *mut *mut exports::ShippaiError, + err: *mut *mut ShippaiError, ) -> *mut VdirsyncerStorageUploadResult { if let Some((href, etag)) = export_result((**storage).upload((*item).clone()), err) { Box::into_raw(Box::new(VdirsyncerStorageUploadResult { @@ -67,7 +67,7 @@ pub unsafe extern "C" fn vdirsyncer_storage_update( c_href: *const c_char, item: *mut Item, c_etag: *const c_char, - err: *mut *mut exports::ShippaiError, + err: *mut *mut ShippaiError, ) -> *const c_char { let href = CStr::from_ptr(c_href); let etag = CStr::from_ptr(c_etag); @@ -88,7 +88,7 @@ pub unsafe extern "C" fn vdirsyncer_storage_delete( storage: *mut Box, c_href: *const c_char, c_etag: *const c_char, - err: *mut *mut exports::ShippaiError, + err: *mut *mut ShippaiError, ) { let href = CStr::from_ptr(c_href); let etag = CStr::from_ptr(c_etag); @@ -104,7 +104,7 @@ pub unsafe extern "C" fn vdirsyncer_storage_buffered(storage: *mut Box) #[no_mangle] pub unsafe extern "C" fn vdirsyncer_storage_flush( storage: *mut Box, - err: *mut *mut exports::ShippaiError, + err: *mut *mut ShippaiError, ) { let _ = export_result((**storage).flush(), err); } diff --git a/rust/vdirsyncer_rustext.h b/rust/vdirsyncer_rustext.h index f2699d4..bad5584 100644 --- a/rust/vdirsyncer_rustext.h +++ b/rust/vdirsyncer_rustext.h @@ -24,14 +24,24 @@ void shippai_free_failure(ShippaiError *t); void shippai_free_str(char *t); -const char *shippai_get_cause_display(ShippaiError *t); - -const char *shippai_get_cause_name(ShippaiError *t); - -const char *shippai_get_cause_names(void); - const char *shippai_get_debug(ShippaiError *t); +const char *shippai_get_display(ShippaiError *t); + +bool shippai_is_error_ItemAlreadyExisting(ShippaiError *t); + +bool shippai_is_error_ItemNotFound(ShippaiError *t); + +bool shippai_is_error_ItemUnparseable(ShippaiError *t); + +bool shippai_is_error_MtimeMismatch(ShippaiError *t); + +bool shippai_is_error_UnexpectedVobject(ShippaiError *t); + +bool shippai_is_error_UnexpectedVobjectVersion(ShippaiError *t); + +bool shippai_is_error_WrongEtag(ShippaiError *t); + bool vdirsyncer_advance_storage_listing(VdirsyncerStorageListing *listing); void vdirsyncer_free_item(Item *c); diff --git a/setup.py b/setup.py index 4bae546..414cffb 100644 --- a/setup.py +++ b/setup.py @@ -37,7 +37,7 @@ requirements = [ milksnake, - 'shippai >= 0.1.1', + 'shippai >= 0.2.2', ]