Skip to content

melpon/mutable

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mutable

An elixir library that temporarily generates side effects.

Usage

You can put and get the value into Mutable.run/2.

Mutable.run([x: 10], fn ->
  assert 10 == Mutable.get(:x)
  Mutable.put(:x, 20)
  assert 20 == Mutable.get(:x)
  Mutable.update(:x, &(&1 + 1))
  assert 21 == Mutable.get(:x)
end)

Mutable.run/2 is nestable.

Mutable.run([x: 10], fn ->
  assert 10 == Mutable.get(:x)
  Mutable.run([x: 20], fn ->
    assert 20 == Mutable.get(:x)
  end)
  # the value is restored
  assert 10 == Mutable.get(:x)
end)

About

An elixir library that temporarily generates side effects

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages