Skip to content

A toolkit for writing software in dart. Effect-system, dependency management and more!

Notifications You must be signed in to change notification settings

tim-smart/elemental

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A toolkit for writing software in dart

Includes:

Usage

The ZIO<R, E, A> type represents an synchronous or asynchronous operation.

  • The R generic is for representing the requirements / environment
  • The E generic is for representing errors
  • The A generic is for the success type

There are a handful of helpful methods to ease composition!

import 'package:elemental/elemental.dart';

ZIO<NoEnv, Never, String> greeting(String name) => ZIO(() => "Hello $name!")

// Note `ZIO<NoEnv, Never, String>` can be shortened to `IO<String>`.

// Here we create a simple wrapper around `print`
IO<Unit> log(String message) => IO(() => print(message)).asUnit;

// And compose them together!
greeting.tap(log).run();

It is worth noting that the above will run synchronously. Only when you start using Future's in your program, will things run asynchronously.

Layers

A quick intro to services and layers can be found in example/.

About

A toolkit for writing software in dart. Effect-system, dependency management and more!

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Languages