diff options
Diffstat (limited to 'ipfs-api/src/request/ls.rs')
-rw-r--r-- | ipfs-api/src/request/ls.rs | 19 |
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"); } |