MCPcopy Index your code
hub / github.com/GraphLite-AI/GraphLite / final_mutation

Function final_mutation

graphlite/src/ast/parser.rs:639–673  ·  view source on GitHub ↗

Parse final mutation action

(tokens: &[Token])

Source from the content-addressed store, hash-verified

637
638/// Parse final mutation action
639fn final_mutation(tokens: &[Token]) -> IResult<&[Token], FinalMutation> {
640 alt((
641 // REMOVE items
642 map(
643 preceded(
644 expect_token(Token::Remove),
645 separated_list1(expect_token(Token::Comma), remove_item),
646 ),
647 FinalMutation::Remove,
648 ),
649 // SET items
650 map(
651 preceded(
652 expect_token(Token::Set),
653 separated_list1(expect_token(Token::Comma), set_item),
654 ),
655 FinalMutation::Set,
656 ),
657 // DELETE expressions
658 map(
659 tuple((
660 opt(alt((
661 expect_token(Token::Detach),
662 expect_token(Token::NoDetach),
663 ))),
664 expect_token(Token::Delete),
665 separated_list1(expect_token(Token::Comma), expression),
666 )),
667 |(detach_mode, _, expressions)| FinalMutation::Delete {
668 expressions,
669 detach: matches!(detach_mode, Some(Token::Detach)),
670 },
671 ),
672 ))(tokens)
673}
674
675/// Parse mutation pipeline: MATCH ... WITH ... [UNWIND ... [WHERE ...]] REMOVE/SET/DELETE ...
676fn mutation_pipeline(tokens: &[Token]) -> IResult<&[Token], Query> {

Callers

nothing calls this directly

Calls 1

expect_tokenFunction · 0.85

Tested by

no test coverage detected