Skip to content

Instantly share code, notes, and snippets.

@hoangtranwork
Created October 3, 2018 14:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hoangtranwork/ce13cb9163cebb8a151823545a7900ee to your computer and use it in GitHub Desktop.
Save hoangtranwork/ce13cb9163cebb8a151823545a7900ee to your computer and use it in GitHub Desktop.
s3 bucket filtering in different ways
fn process(buckets: Vec<Bucket>) {
buckets.iter().filter(|b| b.name == Some(EXACT_NAME.to_string())).for_each(|b| println!("{:#?}", b));
buckets
.iter()
.filter(|b| {
let matched = b.name.as_ref().unwrap().contains(KEYWORD);
b.name.is_some() && matched
})
.for_each(|b| println!("{:#?}", b));
buckets
.iter()
.filter(|b|
if let Some(name) = &b.name {
name.contains(KEYWORD)
} else {
false
}
)
.for_each(|b| println!("{:#?}", b));
buckets
.iter()
.filter(|b|
match &b.name {
Some(name) => { name.contains(KEYWORD) }
None => { false }
}
)
.for_each(|b| println!("{:#?}", b));
buckets
.iter()
.filter(|b| {
let name_op = b.name.as_ref();
let blank = "".to_string();
let name = name_op.unwrap_or(&blank);
name.contains(KEYWORD)
})
.for_each(|b| println!("{:#?}", b));
buckets
.iter()
.filter(|b| {
let blank = String::new();
let name = &b.name.as_ref().unwrap_or_else(|| &blank);
name.contains(KEYWORD)
})
.for_each(|b| println!("{:#?}", b));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment