Struct tokei::Languages
[−]
[src]
pub struct Languages { /* fields omitted */ }
A collection of existing languages(List of Languages)
Methods
impl Languages
[src]
fn from_cbor(_: &[u8]) -> Result<Self, ()>
fn from_json(_: &[u8]) -> Result<Self, ()>
fn from_yaml(_: &[u8]) -> Result<Self, ()>
fn get_statistics(&mut self, paths: Vec<&str>, ignored: Vec<&str>)
Get statistics from the list of paths provided, and a list ignored keywords to ignore paths containing them.
let mut languages = Languages::new(); languages.get_statistics(vec!["."], vec![".git", "target"]);
fn new() -> Self
Constructs a new, blank Languages
.
let languages = Languages::new();
fn remove_empty(self) -> BTreeMap<LanguageType, Language>
Creates a new map that only contains non empty languages.
use tokei::*; use std::collections::BTreeMap; let mut languages = Languages::new(); languages.get_statistics(vec!["doesnt/exist"], vec![".git"]); let empty_map = languages.remove_empty(); assert_eq!(empty_map.len(), 0);
fn to_cbor(&self) -> Result<Vec<u8>, ()>
fn to_json(&self) -> Result<String, ()>
fn to_toml(&self) -> Result<String, ()>
fn to_yaml(&self) -> Result<String, ()>
impl Languages
[src]
fn generate_language(language: LanguageType) -> Language
Methods from Deref<Target = BTreeMap<LanguageType, Language>>
fn clear(&mut self)
1.0.0
Clears the map, removing all values.
Examples
Basic usage:
use std::collections::BTreeMap; let mut a = BTreeMap::new(); a.insert(1, "a"); a.clear(); assert!(a.is_empty());
fn get<Q>(&self, key: &Q) -> Option<&V> where
K: Borrow<Q>,
Q: Ord + ?Sized,
1.0.0
K: Borrow<Q>,
Q: Ord + ?Sized,
Returns a reference to the value corresponding to the key.
The key may be any borrowed form of the map's key type, but the ordering on the borrowed form must match the ordering on the key type.
Examples
Basic usage:
use std::collections::BTreeMap; let mut map = BTreeMap::new(); map.insert(1, "a"); assert_eq!(map.get(&1), Some(&"a")); assert_eq!(map.get(&2), None);
fn contains_key<Q>(&self, key: &Q) -> bool where
K: Borrow<Q>,
Q: Ord + ?Sized,
1.0.0
K: Borrow<Q>,
Q: Ord + ?Sized,
Returns true
if the map contains a value for the specified key.
The key may be any borrowed form of the map's key type, but the ordering on the borrowed form must match the ordering on the key type.
Examples
Basic usage:
use std::collections::BTreeMap; let mut map = BTreeMap::new(); map.insert(1, "a"); assert_eq!(map.contains_key(&1), true); assert_eq!(map.contains_key(&2), false);
fn get_mut<Q>(&mut self, key: &Q) -> Option<&mut V> where
K: Borrow<Q>,
Q: Ord + ?Sized,
1.0.0
K: Borrow<Q>,
Q: Ord + ?Sized,
Returns a mutable reference to the value corresponding to the key.
The key may be any borrowed form of the map's key type, but the ordering on the borrowed form must match the ordering on the key type.
Examples
Basic usage:
use std::collections::BTreeMap; let mut map = BTreeMap::new(); map.insert(1, "a"); if let Some(x) = map.get_mut(&1) { *x = "b"; } assert_eq!(map[&1], "b");
fn insert(&mut self, key: K, value: V) -> Option<V>
1.0.0
Inserts a key-value pair into the map.
If the map did not have this key present, None
is returned.
If the map did have this key present, the value is updated, and the old
value is returned. The key is not updated, though; this matters for
types that can be ==
without being identical. See the module-level
documentation for more.
Examples
Basic usage:
use std::collections::BTreeMap; let mut map = BTreeMap::new(); assert_eq!(map.insert(37, "a"), None); assert_eq!(map.is_empty(), false); map.insert(37, "b"); assert_eq!(map.insert(37, "c"), Some("b")); assert_eq!(map[&37], "c");
fn remove<Q>(&mut self, key: &Q) -> Option<V> where
K: Borrow<Q>,
Q: Ord + ?Sized,
1.0.0
K: Borrow<Q>,
Q: Ord + ?Sized,
Removes a key from the map, returning the value at the key if the key was previously in the map.
The key may be any borrowed form of the map's key type, but the ordering on the borrowed form must match the ordering on the key type.
Examples
Basic usage:
use std::collections::BTreeMap; let mut map = BTreeMap::new(); map.insert(1, "a"); assert_eq!(map.remove(&1), Some("a")); assert_eq!(map.remove(&1), None);
fn append(&mut self, other: &mut BTreeMap<K, V>)
1.11.0
Moves all elements from other
into Self
, leaving other
empty.
Examples
use std::collections::BTreeMap; let mut a = BTreeMap::new(); a.insert(1, "a"); a.insert(2, "b"); a.insert(3, "c"); let mut b = BTreeMap::new(); b.insert(3, "d"); b.insert(4, "e"); b.insert(5, "f"); a.append(&mut b); assert_eq!(a.len(), 5); assert_eq!(b.len(), 0); assert_eq!(a[&1], "a"); assert_eq!(a[&2], "b"); assert_eq!(a[&3], "d"); assert_eq!(a[&4], "e"); assert_eq!(a[&5], "f");
fn range<T, R>(&self, range: R) -> Range<K, V> where
K: Borrow<T>,
R: RangeArgument<T>,
T: Ord + ?Sized,
1.17.0
K: Borrow<T>,
R: RangeArgument<T>,
T: Ord + ?Sized,
Constructs a double-ended iterator over a sub-range of elements in the map.
The simplest way is to use the range syntax min..max
, thus range(min..max)
will
yield elements from min (inclusive) to max (exclusive).
The range may also be entered as (Bound<T>, Bound<T>)
, so for example
range((Excluded(4), Included(10)))
will yield a left-exclusive, right-inclusive
range from 4 to 10.
Panics
Panics if range start > end
.
Panics if range start == end
and both bounds are Excluded
.
Examples
Basic usage:
use std::collections::BTreeMap; use std::collections::Bound::Included; let mut map = BTreeMap::new(); map.insert(3, "a"); map.insert(5, "b"); map.insert(8, "c"); for (&key, &value) in map.range((Included(&4), Included(&8))) { println!("{}: {}", key, value); } assert_eq!(Some((&5, &"b")), map.range(4..).next());
fn range_mut<T, R>(&mut self, range: R) -> RangeMut<K, V> where
K: Borrow<T>,
R: RangeArgument<T>,
T: Ord + ?Sized,
1.17.0
K: Borrow<T>,
R: RangeArgument<T>,
T: Ord + ?Sized,
Constructs a mutable double-ended iterator over a sub-range of elements in the map.
The simplest way is to use the range syntax min..max
, thus range(min..max)
will
yield elements from min (inclusive) to max (exclusive).
The range may also be entered as (Bound<T>, Bound<T>)
, so for example
range((Excluded(4), Included(10)))
will yield a left-exclusive, right-inclusive
range from 4 to 10.
Panics
Panics if range start > end
.
Panics if range start == end
and both bounds are Excluded
.
Examples
Basic usage:
use std::collections::BTreeMap; let mut map: BTreeMap<&str, i32> = ["Alice", "Bob", "Carol", "Cheryl"].iter() .map(|&s| (s, 0)) .collect(); for (_, balance) in map.range_mut("B".."Cheryl") { *balance += 100; } for (name, balance) in &map { println!("{} => {}", name, balance); }
fn entry(&mut self, key: K) -> Entry<K, V>
1.0.0
Gets the given key's corresponding entry in the map for in-place manipulation.
Examples
Basic usage:
use std::collections::BTreeMap; let mut count: BTreeMap<&str, usize> = BTreeMap::new(); // count the number of occurrences of letters in the vec for x in vec!["a","b","a","c","a","b"] { *count.entry(x).or_insert(0) += 1; } assert_eq!(count["a"], 3);
fn split_off<Q>(&mut self, key: &Q) -> BTreeMap<K, V> where
K: Borrow<Q>,
Q: Ord + ?Sized,
1.11.0
K: Borrow<Q>,
Q: Ord + ?Sized,
Splits the collection into two at the given key. Returns everything after the given key, including the key.
Examples
Basic usage:
use std::collections::BTreeMap; let mut a = BTreeMap::new(); a.insert(1, "a"); a.insert(2, "b"); a.insert(3, "c"); a.insert(17, "d"); a.insert(41, "e"); let b = a.split_off(&3); assert_eq!(a.len(), 2); assert_eq!(b.len(), 3); assert_eq!(a[&1], "a"); assert_eq!(a[&2], "b"); assert_eq!(b[&3], "c"); assert_eq!(b[&17], "d"); assert_eq!(b[&41], "e");
fn iter(&self) -> Iter<K, V>
1.0.0
Gets an iterator over the entries of the map, sorted by key.
Examples
Basic usage:
use std::collections::BTreeMap; let mut map = BTreeMap::new(); map.insert(3, "c"); map.insert(2, "b"); map.insert(1, "a"); for (key, value) in map.iter() { println!("{}: {}", key, value); } let (first_key, first_value) = map.iter().next().unwrap(); assert_eq!((*first_key, *first_value), (1, "a"));
fn iter_mut(&mut self) -> IterMut<K, V>
1.0.0
Gets a mutable iterator over the entries of the map, sorted by key.
Examples
Basic usage:
use std::collections::BTreeMap; let mut map = BTreeMap::new(); map.insert("a", 1); map.insert("b", 2); map.insert("c", 3); // add 10 to the value if the key isn't "a" for (key, value) in map.iter_mut() { if key != &"a" { *value += 10; } }
fn keys(&'a self) -> Keys<'a, K, V>
1.0.0
Gets an iterator over the keys of the map, in sorted order.
Examples
Basic usage:
use std::collections::BTreeMap; let mut a = BTreeMap::new(); a.insert(2, "b"); a.insert(1, "a"); let keys: Vec<_> = a.keys().cloned().collect(); assert_eq!(keys, [1, 2]);
fn values(&'a self) -> Values<'a, K, V>
1.0.0
Gets an iterator over the values of the map, in order by key.
Examples
Basic usage:
use std::collections::BTreeMap; let mut a = BTreeMap::new(); a.insert(1, "hello"); a.insert(2, "goodbye"); let values: Vec<&str> = a.values().cloned().collect(); assert_eq!(values, ["hello", "goodbye"]);
fn values_mut(&mut self) -> ValuesMut<K, V>
1.10.0
Gets a mutable iterator over the values of the map, in order by key.
Examples
Basic usage:
use std::collections::BTreeMap; let mut a = BTreeMap::new(); a.insert(1, String::from("hello")); a.insert(2, String::from("goodbye")); for value in a.values_mut() { value.push_str("!"); } let values: Vec<String> = a.values().cloned().collect(); assert_eq!(values, [String::from("hello!"), String::from("goodbye!")]);
fn len(&self) -> usize
1.0.0
Returns the number of elements in the map.
Examples
Basic usage:
use std::collections::BTreeMap; let mut a = BTreeMap::new(); assert_eq!(a.len(), 0); a.insert(1, "a"); assert_eq!(a.len(), 1);
fn is_empty(&self) -> bool
1.0.0
Returns true
if the map contains no elements.
Examples
Basic usage:
use std::collections::BTreeMap; let mut a = BTreeMap::new(); assert!(a.is_empty()); a.insert(1, "a"); assert!(!a.is_empty());
Trait Implementations
impl IntoIterator for Languages
[src]
type Item = <BTreeMap<LanguageType, Language> as IntoIterator>::Item
The type of the elements being iterated over.
type IntoIter = <BTreeMap<LanguageType, Language> as IntoIterator>::IntoIter
Which kind of iterator are we turning this into?
fn into_iter(self) -> Self::IntoIter
Creates an iterator from a value. Read more
impl<'a> IntoIterator for &'a Languages
[src]
type Item = (&'a LanguageType, &'a Language)
The type of the elements being iterated over.
type IntoIter = Iter<'a, LanguageType, Language>
Which kind of iterator are we turning this into?
fn into_iter(self) -> Self::IntoIter
Creates an iterator from a value. Read more
impl<'a> IntoIterator for &'a mut Languages
[src]
type Item = (&'a LanguageType, &'a mut Language)
The type of the elements being iterated over.
type IntoIter = IterMut<'a, LanguageType, Language>
Which kind of iterator are we turning this into?
fn into_iter(self) -> Self::IntoIter
Creates an iterator from a value. Read more
impl AddAssign<BTreeMap<LanguageType, Language>> for Languages
[src]
fn add_assign(&mut self, rhs: BTreeMap<LanguageType, Language>)
The method for the +=
operator
impl Deref for Languages
[src]
type Target = BTreeMap<LanguageType, Language>
The resulting type after dereferencing
fn deref(&self) -> &Self::Target
The method called to dereference a value
impl DerefMut for Languages
[src]
fn deref_mut(&mut self) -> &mut BTreeMap<LanguageType, Language>
The method called to mutably dereference a value