Description
This module defines a `Size` type and provides functions to map specific `Size` values to agent tags in the form of a Dhall map. - **Purpose**: The code maps `Size` enum values to corresponding agent tags, which are represented as a map of `Text` keys and values. This is useful for categorizing or tagging agents based on their size or purpose. - **Inputs**: - `Size`: An enum type with the following possible values: - `XLarge` - `Large` - `Medium` - `Small` - `Integration` - `QA` - `Hardfork` - `Multi` - `Perf` - **Outputs**: - `toAgentTag`: A function that takes a `Size` value and returns a map of agent tags (`Map Text Text`) corresponding to the given size. - `toAgent`: A function that takes a `Size` value and returns an optional map (`Optional (Map Text Text)`) of agent tags. If the resulting map is empty, it returns `None`.Source
let Prelude = ../External/Prelude.dhall let Map = Prelude.Map let Size = < XLarge | Large | Medium | Small | Integration | QA | Hardfork | Multi | Perf > let toAgentTag = \(target : Size) -> merge { XLarge = toMap { size = "generic" } , Large = toMap { size = "generic" } , Medium = toMap { size = "generic" } , Small = toMap { size = "generic" } , Integration = toMap { size = "integration" } , QA = toMap { size = "qa" } , Hardfork = toMap { size = "hardfork" } , Perf = toMap { size = "perf" } , Multi = toMap { size = "generic-multi" } } target let toAgent = \(target : Size) -> let agents = toAgentTag target in if Prelude.List.null (Map.Entry Text Text) agents then None (Map.Type Text Text) else Some agents in { Type = Size, toAgentTag = toAgentTag, toAgent = toAgent }