2026-05-24 12:42 UTC
```
// ranged.gleam
pub opaque type Ranged { Ranged(value: Int, min: Int, max: Int }
pub fn new(value, min, max) -> {
Ranged(
value: int.clamp(value, min:, max:),
min:,
max:,
)
}
pub fn set(current: Ranged, to new: Int) -> Ranged {
Ranged(
value: int.clamp(
new,
current.min,
current.max,
),
min: current.min,
max: current.max,
)
}
```
1 of 2
#gleam #gamedev #functionalprogramming
edit: noo, my indentation :(
Replies (1)
-
@pranabekka@mastodon.social 2026-05-24 12:44
``` // somewhere in player.gleam import ranged let health = ranged.new(50, 0, 50) let mana = ranged.new(20, 0, 20) ``` I feel like this would be helpful? 2 of 2