Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use std::env;
- type Error = &'static str;
- fn query_only_excluded(_: &[String]) -> Result<Vec<String>, Error> { Ok(vec![]) }
- fn query_no_required (_: &[String], _: &[String]) -> Result<Vec<String>, Error> { Ok(vec![]) }
- fn query_with_required(_: &[String], _: &[String], _: &[String]) -> Result<Vec<String>, Error> { Ok(vec![]) }
- fn query_tags() -> Result<Vec<String>, Error> {
- let mut excluded_tags = vec![];
- let mut required_tags = vec![];
- let mut prefered_tags = vec![];
- for arg in env::args() {
- match (arg.get(..1), arg.get(1..)) {
- (Some("-"), Some(rst)) => excluded_tags.push(rst.to_string()),
- (Some("+"), Some(rst)) => required_tags.push(rst.to_string()),
- _ => prefered_tags.push(arg),
- }
- }
- match (&required_tags[..], &prefered_tags[..], &excluded_tags[..]) {
- ([], [], []) => Err("No Input"),
- ([], [], ex) => Ok(query_only_excluded( ex)?),
- ([], pr, ex) => Ok(query_no_required ( pr, ex)?),
- (re, pr, ex) => Ok(query_with_required(re, pr, ex)?),
- }
- }
- fn main() -> Result<(), Error> {
- let files = query_tags()?;
- println!("{:?}", files);
- Ok(())
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement