2 releases

0.0.2 Mar 13, 2020
0.0.1 Mar 13, 2020

#2235 in Data structures

Custom license

20KB
380 lines

tag-vec

A rust crate for a vector of tags

Examples

// Create a vector of tags with the tags 
// "healthy"(healthy food), "junk"(junk food) and "veg"(vegetarian)
let foods: TagVec<String> = TagVec::new();
foods.push(vec!["healthy", "veg"]);
foods.push(vec!["junk"]);
foods.push(vec!["healthy", "veg"]);
foods.push(vec!["junk", "veg"]);
foods.push(vec!["junk"]);

// We don't want healthy or vegetarian food,
// we're not plebs who care about the planet, are we!?
use expressions::*;
let mut cool_foods = tags.query(and(not(tag("veg")), not(tag("healthy"))));
for food in cool_foods {
	println!("{:?}", food);
}

// Expected output: (It only outputs the indices of the matching elements, 
// this is a vec, so the order matters)
// 1
// 3

Features to come:

  • Changing the tags of an element
  • Removing elements(ugh, this is going to be an expensive operation)
  • Popping elements(not expensive at all!)

No runtime deps