forgot label for edges

This commit is contained in:
elvis
2025-11-15 19:03:24 +01:00
parent cfa62ffef6
commit 500f711b0a
8 changed files with 36 additions and 2 deletions

View File

@ -130,6 +130,7 @@ pub enum QualifierSystem {
pub enum QualifierEdge {
Source,
Target,
Label,
}
#[derive(Clone, Copy, Serialize, Deserialize, Hash)]
@ -334,9 +335,17 @@ impl PositiveUnary {
| (Self::ToEl, PositiveAssertionTypes::String) =>
Ok(PositiveAssertionTypes::PositiveElement),
| (
Self::Qualifier(PositiveQualifier::Edge(_)),
Self::Qualifier(PositiveQualifier::Edge(QualifierEdge::Source)),
PositiveAssertionTypes::Edge,
) => Ok(PositiveAssertionTypes::Node),
| (
Self::Qualifier(PositiveQualifier::Edge(QualifierEdge::Target)),
PositiveAssertionTypes::Edge,
) => Ok(PositiveAssertionTypes::Node),
| (
Self::Qualifier(PositiveQualifier::Edge(QualifierEdge::Label)),
PositiveAssertionTypes::Edge,
) => Ok(PositiveAssertionTypes::Label),
| (
Self::Qualifier(PositiveQualifier::Node(
QualifierNode::Neighbours,
@ -999,6 +1008,14 @@ impl PositiveAssertReturnValue {
) => Ok(PositiveAssertReturnValue::Node(
graph.edge_endpoints(edge).unwrap().1,
)),
| (
PositiveAssertReturnValue::Edge(edge),
PositiveUnary::Qualifier(PositiveQualifier::Edge(
QualifierEdge::Label,
)),
) => Ok(PositiveAssertReturnValue::Label(
graph[edge].clone(),
)),
| (
PositiveAssertReturnValue::Node(node),
PositiveUnary::Qualifier(PositiveQualifier::Node(