summaryrefslogtreecommitdiffstats
path: root/ipfs-api/src/request/ls.rs
diff options
context:
space:
mode:
Diffstat (limited to 'ipfs-api/src/request/ls.rs')
-rw-r--r--ipfs-api/src/request/ls.rs19
1 files changed, 15 insertions, 4 deletions
diff --git a/ipfs-api/src/request/ls.rs b/ipfs-api/src/request/ls.rs
index 69e456a..eb6a1fa 100644
--- a/ipfs-api/src/request/ls.rs
+++ b/ipfs-api/src/request/ls.rs
@@ -9,10 +9,21 @@
use crate::request::ApiRequest;
use crate::serde::Serialize;
-#[derive(Serialize)]
+#[cfg_attr(feature = "builder", derive(TypedBuilder))]
+#[derive(Serialize, Default)]
+#[serde(rename_all = "kebab-case")]
pub struct Ls<'a> {
#[serde(rename = "arg")]
- pub path: Option<&'a str>,
+ pub path: &'a str,
+ /// Resolve linked objects to find out their types. Default: `true`
+ #[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
+ pub resolve_type: Option<bool>,
+ /// Resolve linked objects to find out their file size. Default: `true`
+ #[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
+ pub size: Option<bool>,
+ /// Enable experimental streaming of directory entries as they are traversed.
+ #[cfg_attr(feature = "builder", builder(default, setter(strip_option)))]
+ pub stream: Option<bool>,
}
impl<'a> ApiRequest for Ls<'a> {
@@ -23,6 +34,6 @@ impl<'a> ApiRequest for Ls<'a> {
mod tests {
use super::Ls;
- serialize_url_test!(test_serializes_0, Ls { path: Some("test") }, "arg=test");
- serialize_url_test!(test_serializes_1, Ls { path: None }, "");
+ serialize_url_test!(test_serializes_0, Ls { path: "test", .. Default::default() }, "arg=test");
+ serialize_url_test!(test_serializes_1, Ls { path: "asdf", resolve_type: Some(true), size: Some(true), stream: Some(false) }, "arg=asdf&resolve-type=true&size=true&stream=false");
}