Expand description
Parser for relationship fields like Depends, Recommends, etc.
§Example
use debian_control::lossless::relations::{Relations, Relation};
use debian_control::relations::VersionConstraint;
let mut relations: Relations = r"python3-dulwich (>= 0.19.0), python3-requests, python3-urllib3 (<< 1.26.0)".parse().unwrap();
assert_eq!(relations.to_string(), "python3-dulwich (>= 0.19.0), python3-requests, python3-urllib3 (<< 1.26.0)");
assert!(relations.satisfied_by(|name: &str| -> Option<debversion::Version> {
match name {
"python3-dulwich" => Some("0.19.0".parse().unwrap()),
"python3-requests" => Some("2.25.1".parse().unwrap()),
"python3-urllib3" => Some("1.25.11".parse().unwrap()),
_ => None
}}));
relations.remove_entry(1);
relations.get_entry(0).unwrap().get_relation(0).unwrap().set_archqual("amd64");
assert_eq!(relations.to_string(), "python3-dulwich:amd64 (>= 0.19.0), python3-urllib3 (<< 1.26.0)");Structs§
- Default
Sorting Order - Default sorting order (lexicographical with special items last).
- Entry
- A node in the syntax tree representing a $ast
- Parse
Error - Error type for parsing relations fields
- Relation
- A node in the syntax tree representing a $ast
- Relation
Builder - A builder for creating a
Relation - Relations
- A node in the syntax tree representing a $ast
- Substvar
- A node in the syntax tree representing a $ast
- Wrap
AndSort Order - Sorting order matching wrap-and-sort behavior.
Enums§
- Lang
- Second, implementing the
Languagetrait teaches rowan to convert between these two SyntaxKind types, allowing for a nicer SyntaxNode API where “kinds” are values from ourenum SyntaxKind, instead of plain u16 values.
Traits§
- Sorting
Order - Trait for defining sorting order of package relations.
Type Aliases§
- Syntax
Element - A syntax element (node or token) in the relations tree.
- Syntax
Node - A syntax node in the relations tree.
- Syntax
Token - A syntax token in the relations tree.