Files
adventofcode/2024/bonus/day03/should_execute/main.tf

20 lines
494 B
HCL

variable "ops" {
type = list(list(string))
}
variable "index" {
type = number
}
locals {
is_mul = startswith(var.ops[var.index][0], "mul")
subslice = reverse(slice(var.ops[*][0], 0, var.index))
do_pos = try(index(local.subslice, "do()"), var.index)
dont_pos = try(index(local.subslice, "don't()"), var.index + 1)
}
output "value" {
value = (local.is_mul && local.do_pos < local.dont_pos) ? (parseint(var.ops[var.index][1], 10) * parseint(var.ops[var.index][2], 10)) : 0
}