README.md

# Hafnium

[![ci](https://github.com/clszzyh/hafnium/workflows/ci/badge.svg)](https://github.com/clszzyh/hafnium/actions)
[![Coveralls github](https://img.shields.io/coveralls/github/clszzyh/hafnium)](https://coveralls.io/github/clszzyh/hafnium)
[![Hex.pm](https://img.shields.io/hexpm/v/hafnium)](http://hex.pm/packages/hafnium)
[![Hex.pm](https://img.shields.io/hexpm/dt/hafnium)](http://hex.pm/packages/hafnium)
[![Documentation](https://img.shields.io/badge/hexdocs-latest-blue.svg)](https://hexdocs.pm/hafnium/readme.html)


<!-- MDOC -->

Flexible pipeline library.

<!-- MDOC -->

```elixir
defmodule Demo do
  use Hafnium
end

Demo.name
## -> :hafnium_test_demo
```

<!-- ```elixir -->
<!-- defmodule Demo do -->
<!--   use Hafnium -->
<!--   pipeline A, hello: :world -->
<!--   pipeline B -->
<!-- end -->
<!-- defmodule A do -->
<!--   use Hafnium.Pipeline -->
<!--   @impl true -->
<!--   def handle_call() -->
<!--   @impl true -->
<!--   def handle_cast() -->
<!-- end -->
<!-- defmodule B do -->
<!--   use Hafnium.Pipeline -->
<!-- end -->
<!-- ``` -->

<!-- ```elixir -->
<!-- Demo.invoke -->
<!-- ``` -->

<!-- MDOC -->

## Installation

If [available in Hex](https://hex.pm/docs/publish), the package can be installed
by adding `hafnium` to your list of dependencies in `mix.exs`:

```elixir
def deps do
  [
    {:hafnium, "~> 0.1.0"}
  ]
end
```

Documentation can be generated with [ExDoc](https://github.com/elixir-lang/ex_doc)
and published on [HexDocs](https://hexdocs.pm). Once published, the docs can
be found at [https://hexdocs.pm/hafnium](https://hexdocs.pm/hafnium).