diff options
author | Bryan Newbold <bnewbold@robocracy.org> | 2018-09-11 20:32:01 -0700 |
---|---|---|
committer | Bryan Newbold <bnewbold@robocracy.org> | 2018-09-11 20:32:33 -0700 |
commit | d45deae242f6a256b52874d5a6995e3a7e0bdab4 (patch) | |
tree | fd20da515628e3bb2924b5cc1e630a60dd9cba32 /rust/src/api_helpers.rs | |
parent | 99306a4dab4919c1c9fed338560f8c3e01a6382f (diff) | |
download | fatcat-d45deae242f6a256b52874d5a6995e3a7e0bdab4.tar.gz fatcat-d45deae242f6a256b52874d5a6995e3a7e0bdab4.zip |
use idiomatic from_str for ExpandFlags
Diffstat (limited to 'rust/src/api_helpers.rs')
-rw-r--r-- | rust/src/api_helpers.rs | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/rust/src/api_helpers.rs b/rust/src/api_helpers.rs index f260d25f..1df42622 100644 --- a/rust/src/api_helpers.rs +++ b/rust/src/api_helpers.rs @@ -29,12 +29,16 @@ pub struct ExpandFlags { pub creators: bool, } -impl ExpandFlags { - pub fn from_string(param: &str) -> ExpandFlags { +impl FromStr for ExpandFlags { + type Err = Error; + fn from_str(param: &str) -> Result<ExpandFlags> { let list: Vec<&str> = param.split_terminator(",").collect(); - ExpandFlags::from_strings(&list) + Ok(ExpandFlags::from_str_list(&list)) } - pub fn from_strings(list: &[&str]) -> ExpandFlags { +} + +impl ExpandFlags { + pub fn from_str_list(list: &[&str]) -> ExpandFlags { if list.contains(&"none") { ExpandFlags::none() } else if list.contains(&"all") { @@ -68,10 +72,10 @@ impl ExpandFlags { #[test] fn test_expand_flags() { - assert!(ExpandFlags::from_strings(&vec![]).files == false); - assert!(ExpandFlags::from_strings(&vec!["files"]).files == true); - assert!(ExpandFlags::from_strings(&vec!["file"]).files == false); - let all = ExpandFlags::from_strings(&vec![ + assert!(ExpandFlags::from_str_list(&vec![]).files == false); + assert!(ExpandFlags::from_str_list(&vec!["files"]).files == true); + assert!(ExpandFlags::from_str_list(&vec!["file"]).files == false); + let all = ExpandFlags::from_str_list(&vec![ "files", "container", "other_thing", @@ -86,11 +90,11 @@ fn test_expand_flags() { creators: true } ); - assert!(ExpandFlags::from_string("").files == false); - assert!(ExpandFlags::from_string("files").files == true); - assert!(ExpandFlags::from_string("something,,files").files == true); - assert!(ExpandFlags::from_string("file").files == false); - let all = ExpandFlags::from_string("files,container,other_thing,releases,creators"); + assert!(ExpandFlags::from_str("").files == false); + assert!(ExpandFlags::from_str("files").files == true); + assert!(ExpandFlags::from_str("something,,files").files == true); + assert!(ExpandFlags::from_str("file").files == false); + let all = ExpandFlags::from_str("files,container,other_thing,releases,creators"); assert!( all == ExpandFlags { files: true, |