Current section

Files

Jump to
elixirst lib stex examples large.ex
Raw

lib/stex/examples/large.ex

defmodule Examples.LargeExample do
@moduledoc false
use STEx
@session "!Hello().end"
@spec do_something(pid) :: atom
def do_something(pid) do
send(pid, {:Hello})
:ok
end
@session "X = &{
?Option1(binary),
?Option2().X,
?Option3()
}"
@spec do_something_else :: atom
def do_something_else() do
receive do
{:Option1, value} ->
IO.puts(value)
{:Option2} ->
do_something_else()
{:Option3} ->
:ok
end
end
@dual "X"
@spec do_something_else_dual(pid) :: atom
def do_something_else_dual(pid) do
send(pid, {:Option2})
send(pid, {:Option1, "Hello"})
:ok
end
end