| 404 | } |
| 405 | |
| 406 | absl::StatusOr<ExecutionPath> PlannerContext::ExtractSubplan( |
| 407 | const cel::Expr& node) { |
| 408 | auto* subexpression = program_builder_.GetSubexpression(&node); |
| 409 | if (subexpression == nullptr) { |
| 410 | return absl::InternalError( |
| 411 | "attempted to update program step for untracked expr node"); |
| 412 | } |
| 413 | |
| 414 | subexpression->Flatten(); |
| 415 | |
| 416 | ExecutionPath out; |
| 417 | subexpression->ExtractTo(out); |
| 418 | |
| 419 | return out; |
| 420 | } |
| 421 | |
| 422 | absl::Status PlannerContext::ReplaceSubplan(const cel::Expr& node, |
| 423 | ExecutionPath path) { |