diff --git a/flake.lock b/flake.lock index 4442cb9..8b9e908 100644 --- a/flake.lock +++ b/flake.lock @@ -11,11 +11,11 @@ "sbt-derivation": "sbt-derivation" }, "locked": { - "lastModified": 1772439062, - "narHash": "sha256-x+/Rzz28aOKYvIlmk2n0FiAYLgEENGuoJZYczdhIveo=", + "lastModified": 1775459861, + "narHash": "sha256-u003wFjSJ6EAzVoikQZAtfLj0wK1vH6YQYpY2/K0c3A=", "owner": "jiribenes", "repo": "effekt-nix", - "rev": "2fc04e57b1bf3505c0c9d9a030e2af050dda2b2f", + "rev": "58b5422b1c30d2c0ac92dc8cfa80d4ae8be94725", "type": "github" }, "original": { @@ -44,11 +44,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1772419343, - "narHash": "sha256-QU3Cd5DJH7dHyMnGEFfPcZDaCAsJQ6tUD+JuUsYqnKU=", + "lastModified": 1775763530, + "narHash": "sha256-BuTK9z1QEwWPOIakQ1gCN4pa4VwVJpfptYCviy2uOGc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "93178f6a00c22fcdee1c6f5f9ab92f2072072ea9", + "rev": "b0188973b4b2a5b6bdba8b65381d6cd09a533da0", "type": "github" }, "original": { diff --git a/src/lib/color.effekt b/src/lib/color.effekt index f4b8411..819e2af 100644 --- a/src/lib/color.effekt +++ b/src/lib/color.effekt @@ -10,17 +10,13 @@ module color record Color(r: Int, g: Int, b: Int, a: Int) -def colorFormat { str: => Unit / {literal, splice[Double], splice[Int]}}: String = stringBuffer { +def colorFormat { str: => Unit / {write, splice[Double], splice[Int]}}: String = stringBuffer { try { str() - do flush() - } - with literal { s => resume(do write(s)) } - with splice[Int] { i => + } with splice[Int] { i => val format = i.max(0).min(255).show resume(do write(format)) - } - with splice[Double] { d => + } with splice[Double] { d => val format = (d / 255.0).max(0.0).min(1.0).show resume(do write(format)) } diff --git a/src/lib/dom.effekt b/src/lib/dom.effekt index 2d3334c..443030f 100644 --- a/src/lib/dom.effekt +++ b/src/lib/dom.effekt @@ -122,14 +122,10 @@ def insert(node: Node): Node / HTMLElement = { node } -def text { str: => Unit / {literal, splice[Int], splice[Double], splice[Bool], splice[Char], splice[Byte]}}: Unit / HTMLElement = { +def text { str: => Unit / {write, splice[Int], splice[Double], splice[Bool], splice[Char], splice[Byte]}}: Unit / HTMLElement = { do Text(stringBuffer { - try { - str() - do flush() - } - with literal { s => resume(do write(s)) } + try { str() } with splice[Int] { i => resume(do write(i.show))} with splice[Double] { i => resume(do write(i.show))} with splice[Bool] { i => resume(do write(i.show))}