Inline module

Because this is Terraform, and it's the ultimate optimisation technique
This commit is contained in:
2024-12-20 20:15:30 +01:00
parent 395463dc4a
commit be2244eca9
2 changed files with 16 additions and 24 deletions

View File

@@ -2,17 +2,24 @@ variable "prev" {
type = map(number) type = map(number)
} }
module "transform" {
source = "../transform"
for_each = var.prev
num = each.key
}
locals { locals {
not_a_module = {
for num, _ in var.prev : num => (
tonumber(num) == 0
? [1]
: (
length(tostring(num)) % 2 == 0
? [
tonumber(substr(tostring(num), 0, length(tostring(num)) / 2)),
tonumber(substr(tostring(num), length(tostring(num)) / 2, length(tostring(num)) / 2)),
]
: [num * 2024]
)
)
}
by_value = flatten([ by_value = flatten([
for key, value in module.transform : for key, value in local.not_a_module :
[for result in value.result : { num = result, count = var.prev[key] }] [for result in value : { num = result, count = var.prev[key] }]
]) ])
grouped = { for kv in local.by_value : kv.num => kv.count... } grouped = { for kv in local.by_value : kv.num => kv.count... }

View File

@@ -1,15 +0,0 @@
variable "num" {
type = number
}
locals {
as_str = tostring(var.num)
len = length(local.as_str)
half = floor(length(local.as_str) / 2)
first = try(tonumber(substr(local.as_str, 0, local.half)), -1)
second = try(tonumber(substr(local.as_str, local.half, local.half)), -1)
}
output "result" {
value = var.num == 0 ? [1] : local.len % 2 == 0 ? [local.first, local.second] : [var.num * 2024]
}