graphforge_core/
cypher_feature.rs1use serde::{Deserialize, Serialize};
4
5#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize, Deserialize)]
7pub enum UnsupportedCypherFeature {
8 CallSubquery,
10 CountSubquery,
12 Reduce,
14 ShortestPath,
16 DynamicDuration,
18 IdentityFunction,
20 UnboundRelationshipEndpoint,
22 IndexedPathRelationshipPredicate,
24 VariableLengthRelationshipAlternation,
26 ParameterRowsAcrossLabels,
28}
29
30impl UnsupportedCypherFeature {
31 #[must_use]
33 pub const fn description(self) -> &'static str {
34 match self {
35 Self::CallSubquery => "Cypher CALL subqueries",
36 Self::CountSubquery => "Cypher COUNT subqueries",
37 Self::Reduce => "Cypher reduce accumulator expressions",
38 Self::ShortestPath => "Cypher shortest-path patterns",
39 Self::DynamicDuration => "Cypher duration maps with nonliteral values",
40 Self::IdentityFunction => "Cypher id identity function",
41 Self::UnboundRelationshipEndpoint => {
42 "Cypher endpoint functions on unbound relationship values"
43 }
44 Self::IndexedPathRelationshipPredicate => {
45 "Cypher ALL predicates over indexed variable-length relationship properties"
46 }
47 Self::VariableLengthRelationshipAlternation => {
48 "Cypher variable-length relationship type alternation"
49 }
50 Self::ParameterRowsAcrossLabels => {
51 "Cypher parameter rows matching properties across different node labels"
52 }
53 }
54 }
55}