ipfs_api_prelude/request/
ls.rs1use crate::request::ApiRequest;
10use serde::Serialize;
11
12#[cfg_attr(feature = "with-builder", derive(TypedBuilder))]
13#[derive(Serialize, Default)]
14#[serde(rename_all = "kebab-case")]
15pub struct Ls<'a> {
16 #[serde(rename = "arg")]
17 pub path: &'a str,
18 #[cfg_attr(feature = "with-builder", builder(default, setter(strip_option)))]
20 pub resolve_type: Option<bool>,
21 #[cfg_attr(feature = "with-builder", builder(default, setter(strip_option)))]
23 pub size: Option<bool>,
24 #[cfg_attr(feature = "with-builder", builder(default, setter(strip_option)))]
26 pub stream: Option<bool>,
27}
28
29impl<'a> ApiRequest for Ls<'a> {
30 const PATH: &'static str = "/ls";
31}
32
33#[cfg(test)]
34mod tests {
35 use super::Ls;
36
37 serialize_url_test!(
38 test_serializes_0,
39 Ls {
40 path: "test",
41 ..Default::default()
42 },
43 "arg=test"
44 );
45 serialize_url_test!(
46 test_serializes_1,
47 Ls {
48 path: "asdf",
49 resolve_type: Some(true),
50 size: Some(true),
51 stream: Some(false)
52 },
53 "arg=asdf&resolve-type=true&size=true&stream=false"
54 );
55}