# `GanttEx.LinkForm`
[🔗](https://github.com/rocket4ce/gantt_ex/blob/v0.1.0/lib/gantt_ex/link_form.ex#L1)

Converts links to the params of the dependency editor and validates them.

    iex> link = GanttEx.Link.new!(id: 1, source: 1, target: 2, lag: 2)
    iex> GanttEx.LinkForm.params(link)
    %{"type" => "finish_to_start", "lag" => "2"}

    iex> GanttEx.LinkForm.cast(%{"type" => "start_to_start", "lag" => "-1"})
    {:ok, %{type: :start_to_start, lag: -1}}

    iex> GanttEx.LinkForm.cast(%{"type" => "start_to_start", "lag" => "soon"})
    {:error, [lag: :invalid_number]}

# `cast`

```elixir
@spec cast(map()) :: {:ok, map()} | {:error, keyword(atom())}
```

Validates submitted params.

# `params`

```elixir
@spec params(GanttEx.Link.t()) :: %{required(String.t()) =&gt; String.t()}
```

Returns the form params for a link.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
