Skip to content

Instantly share code, notes, and snippets.

@dacr
Last active February 3, 2026 20:25
Show Gist options
  • Select an option

  • Save dacr/daba1a8b97dfbe2b610f3c5dc7dca02f to your computer and use it in GitHub Desktop.

Select an option

Save dacr/daba1a8b97dfbe2b610f3c5dc7dca02f to your computer and use it in GitHub Desktop.
ZIO learning - providing a layer to the environment / published by https://github.com/dacr/code-examples-manager #1efafb54-4bac-4263-b71b-f8ecab62dd30/1fd2da907ad1ec6eec52c4fac88ea190e89e929b
// summary : ZIO learning - providing a layer to the environment
// keywords : scala, zio, learning, pure-functional, @testable
// publish : gist
// authors : David Crosson
// license : Apache License Version 2.0 (https://www.apache.org/licenses/LICENSE-2.0.txt)
// id : 1efafb54-4bac-4263-b71b-f8ecab62dd30
// created-on : 2021-03-27T08:57:03+01:00
// managed-by : https://github.com/dacr/code-examples-manager
// run-with : scala-cli $file
// ---------------------
//> using scala "3.4.2"
//> using dep "dev.zio::zio:2.0.13"
//> using dep "fr.janalyse::zio-worksheet:2.0.13.0"
// ---------------------
import zio.*, zio.worksheet.*
val logic: ZIO[Console, Throwable, Unit] = for {
name <- ZIO.succeed("toto")
_ <- Console.printLine(s"Hello $name")
} yield ()
// -------------------------------------------------------------
// Of course this is now useless as Console, System, Random, ...
// belong to the default environment and are now provided by default
// it was not the case in early ZIO releases
val layers = ZLayer.succeed(Console.ConsoleLive)
logic.provideLayer(layers).unsafeRun
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment