From a162e2cbc3dd0898211056154af57e6ec58d7808 Mon Sep 17 00:00:00 2001 From: Julius Michaelis Date: Thu, 9 Jul 2020 17:55:15 +0900 Subject: ipfs files: cid-version, hash, flush --- ipfs-api/examples/mfs.rs | 8 ++++---- ipfs-api/src/client/internal.rs | 39 ++++++++++++++++++++++++++------------- ipfs-api/src/request/files.rs | 24 ++++++++++++++++++++++++ 3 files changed, 54 insertions(+), 17 deletions(-) diff --git a/ipfs-api/examples/mfs.rs b/ipfs-api/examples/mfs.rs index dab272b..b53935c 100644 --- a/ipfs-api/examples/mfs.rs +++ b/ipfs-api/examples/mfs.rs @@ -31,7 +31,7 @@ async fn main() { eprintln!("making /test..."); eprintln!(); - if let Err(e) = client.files_mkdir("/test", false).await { + if let Err(e) = client.files_mkdir("/test", false, 0, None, true).await { eprintln!("error making /test: {}", e); return; } @@ -39,7 +39,7 @@ async fn main() { eprintln!("making dirs /test/does/not/exist/yet..."); eprintln!(); - if let Err(e) = client.files_mkdir("/test/does/not/exist/yet", true).await { + if let Err(e) = client.files_mkdir("/test/does/not/exist/yet", true, 0, None, true).await { eprintln!("error making /test/does/not/exist/yet: {}", e); return; } @@ -60,7 +60,7 @@ async fn main() { let src = File::open(file!()).expect("could not read source file"); - if let Err(e) = client.files_write("/test/mfs.rs", true, true, false, 0, None, false, src).await { + if let Err(e) = client.files_write("/test/mfs.rs", true, true, false, 0, None, false, 0, None, true, src).await { eprintln!("error writing source file /test/mfs.rs: {}", e); return; } @@ -79,7 +79,7 @@ async fn main() { eprintln!("removing /test..."); eprintln!(); - if let Err(e) = client.files_rm("/test", true).await { + if let Err(e) = client.files_rm("/test", true, true).await { eprintln!("error removing /test: {}", e); } diff --git a/ipfs-api/src/client/internal.rs b/ipfs-api/src/client/internal.rs index c28e251..f317fe8 100644 --- a/ipfs-api/src/client/internal.rs +++ b/ipfs-api/src/client/internal.rs @@ -1075,7 +1075,7 @@ impl IpfsClient { /// use ipfs_api::IpfsClient; /// /// let client = IpfsClient::default(); - /// let res = client.files_cp("/path/to/file", "/dest"); + /// let res = client.files_cp("/path/to/file", "/dest", true); /// ``` /// #[inline] @@ -1083,8 +1083,9 @@ impl IpfsClient { &self, path: &str, dest: &str, + flush: bool, ) -> Result { - self.request_empty(request::FilesCp { path, dest }, None) + self.request_empty(request::FilesCp { path, dest, flush }, None) .await } @@ -1127,8 +1128,8 @@ impl IpfsClient { /// use ipfs_api::IpfsClient; /// /// let client = IpfsClient::default(); - /// let res = client.files_mkdir("/test", false); - /// let res = client.files_mkdir("/test/nested/dir", true); + /// let res = client.files_mkdir("/test", false, 0, None, true); + /// let res = client.files_mkdir("/test/nested/dir", true, 0, None, true); /// ``` /// #[inline] @@ -1136,8 +1137,11 @@ impl IpfsClient { &self, path: &str, parents: bool, + cid_version: i32, + hash: Option<&str>, + flush: bool, ) -> Result { - self.request_empty(request::FilesMkdir { path, parents }, None) + self.request_empty(request::FilesMkdir { path, parents, cid_version, hash, flush }, None) .await } @@ -1147,7 +1151,7 @@ impl IpfsClient { /// use ipfs_api::IpfsClient; /// /// let client = IpfsClient::default(); - /// let res = client.files_mv("/test/tmp.json", "/test/file.json"); + /// let res = client.files_mv("/test/tmp.json", "/test/file.json", true); /// ``` /// #[inline] @@ -1155,8 +1159,9 @@ impl IpfsClient { &self, path: &str, dest: &str, + flush: bool, ) -> Result { - self.request_empty(request::FilesMv { path, dest }, None) + self.request_empty(request::FilesMv { path, dest, flush }, None) .await } @@ -1184,8 +1189,8 @@ impl IpfsClient { /// use ipfs_api::IpfsClient; /// /// let client = IpfsClient::default(); - /// let res = client.files_rm("/test/dir", true); - /// let res = client.files_rm("/test/file.json", false); + /// let res = client.files_rm("/test/dir", true, true); + /// let res = client.files_rm("/test/file.json", false, true); /// ``` /// #[inline] @@ -1193,8 +1198,9 @@ impl IpfsClient { &self, path: &str, recursive: bool, + flush: bool, ) -> Result { - self.request_empty(request::FilesRm { path, recursive }, None) + self.request_empty(request::FilesRm { path, recursive, flush }, None) .await } @@ -1220,7 +1226,7 @@ impl IpfsClient { /// /// let client = IpfsClient::default(); /// let file = File::open("test.json").unwrap(); - /// let res = client.files_write("/test/file.json", true, true, true, 0, None, false, file); + /// let res = client.files_write("/test/file.json", true, true, true, 0, None, false, 0, None, true, file); /// ``` /// /// Not specifying a byte `count` writes the entire input. @@ -1235,6 +1241,9 @@ impl IpfsClient { offset: i64, count: Option, raw_leaves: bool, + cid_version: i32, + hash: Option<&str>, + flush: bool, data: R, ) -> Result where @@ -1253,6 +1262,9 @@ impl IpfsClient { offset, count, raw_leaves, + cid_version, + hash, + flush, }, Some(form), ) @@ -1266,7 +1278,7 @@ impl IpfsClient { /// use std::fs::File; /// /// let client = IpfsClient::default(); - /// let res = client.files_chcid("/test/", 1, Some("sha3-512")); + /// let res = client.files_chcid("/test/", 1, Some("sha3-512"), true); /// ``` /// /// Not specifying a byte `count` writes the entire input. @@ -1277,9 +1289,10 @@ impl IpfsClient { path: &str, cid_version: i32, hash: Option<&str>, + flush: bool, ) -> Result { - self.request_empty(request::FilesChcid { path, cid_version, hash }, None) + self.request_empty(request::FilesChcid { path, cid_version, hash, flush }, None) .await } diff --git a/ipfs-api/src/request/files.rs b/ipfs-api/src/request/files.rs index bcf17cc..e70e04b 100644 --- a/ipfs-api/src/request/files.rs +++ b/ipfs-api/src/request/files.rs @@ -16,6 +16,8 @@ pub struct FilesCp<'a> { #[serde(rename = "arg")] pub dest: &'a str, + + pub flush: bool, } impl<'a> ApiRequest for FilesCp<'a> { @@ -48,6 +50,14 @@ pub struct FilesMkdir<'a> { pub path: &'a str, pub parents: bool, + + #[serde(skip_serializing_if = "Option::is_none")] + pub hash: Option<&'a str>, + + #[serde(rename = "cid-version")] + pub cid_version: i32, + + pub flush: bool, } impl<'a> ApiRequest for FilesMkdir<'a> { @@ -61,6 +71,8 @@ pub struct FilesMv<'a> { #[serde(rename = "arg")] pub dest: &'a str, + + pub flush: bool, } impl<'a> ApiRequest for FilesMv<'a> { @@ -88,6 +100,8 @@ pub struct FilesRm<'a> { pub path: &'a str, pub recursive: bool, + + pub flush: bool, } impl<'a> ApiRequest for FilesRm<'a> { @@ -122,6 +136,14 @@ pub struct FilesWrite<'a> { #[serde(rename = "raw-leaves")] pub raw_leaves: bool, + + #[serde(skip_serializing_if = "Option::is_none")] + pub hash: Option<&'a str>, + + #[serde(rename = "cid-version")] + pub cid_version: i32, + + pub flush: bool, } impl<'a> ApiRequest for FilesWrite<'a> { @@ -138,6 +160,8 @@ pub struct FilesChcid<'a> { #[serde(rename = "cid-version")] pub cid_version: i32, + + pub flush: bool, } impl<'a> ApiRequest for FilesChcid<'a> { -- cgit v1.2.3