| 1033 | } |
| 1034 | |
| 1035 | static void extract_channels_rust(CBMExtractCtx *ctx) { |
| 1036 | TSNodeStack stack; |
| 1037 | ts_nstack_init(&stack, ctx->arena, CHAN_STACK_CAP); |
| 1038 | ts_nstack_push(&stack, ctx->arena, ctx->root); |
| 1039 | |
| 1040 | while (stack.count > 0) { |
| 1041 | TSNode node = ts_nstack_pop(&stack); |
| 1042 | if (strcmp(ts_node_type(node), "call_expression") == 0) { |
| 1043 | rust_process_call(ctx, node); |
| 1044 | } |
| 1045 | uint32_t count = ts_node_child_count(node); |
| 1046 | for (int i = (int)count - SKIP_ONE; i >= 0; i--) { |
| 1047 | ts_nstack_push(&stack, ctx->arena, ts_node_child(node, (uint32_t)i)); |
| 1048 | } |
| 1049 | } |
| 1050 | } |
| 1051 | |
| 1052 | /* ══════════════════════════════════════════════════════════════════ |
| 1053 | * Entry point — language dispatch |
no test coverage detected