apt_cache/apt/
parser.rs

1//! Parsers extract relevent package names from each line of an output from an `apt-cache` command.
2
3pub fn search(s: &str) -> Option<&str> {
4    s.split_whitespace().next()
5}
6
7pub fn depends(s: &str) -> Option<&str> {
8    s.trim().strip_prefix("Depends: ")
9}
10
11pub fn recommends(s: &str) -> Option<&str> {
12    s.trim().strip_prefix("Recommends: ")
13}
14
15#[cfg(test)]
16mod tests {
17    use super::*;
18
19    #[test]
20    fn test_search() {
21        assert_eq!(
22            search("package_name long description").unwrap(),
23            "package_name"
24        )
25    }
26
27    #[test]
28    fn test_depends() {
29        assert_eq!(depends("  Depends: debianutils").unwrap(), "debianutils");
30        assert!(depends("bash").is_none())
31    }
32}