Skip to content

Instantly share code, notes, and snippets.

@dacr
Last active May 6, 2023 15:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dacr/daba1a8b97dfbe2b610f3c5dc7dca02f to your computer and use it in GitHub Desktop.
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/2573c3b27577f3d905c7d6ba0d93afe1d703c341
// summary : ZIO learning - providing a layer to the environment
// keywords : scala, zio, learning, pure-functional, @testable
// publish : gist
// authors : David Crosson
// license : Apache NON-AI License Version 2.0 (https://raw.githubusercontent.com/non-ai-licenses/non-ai-licenses/main/NON-AI-APACHE2)
// 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.2.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