# `VintageNet.Persistence`
[🔗](https://github.com/nerves-networking/vintage_net/blob/v0.13.9/lib/vintage_net/persistence.ex#L5)

Customize the way VintageNet saves and loads configurations

# `clear`

```elixir
@callback clear(ifname :: String.t()) :: :ok
```

Clear out a previously saved configuration

# `enumerate`

```elixir
@callback enumerate() :: [String.t()]
```

Enumerate the interfaces that have saved configurations

This returns a list of interface names.

# `load`

```elixir
@callback load(ifname :: String.t()) :: {:ok, map()} | {:error, reason :: any()}
```

Load the configuration of an interface

# `save`

```elixir
@callback save(ifname :: String.t(), config :: map()) :: :ok | {:error, atom()}
```

Save the configuration for the specified interface

# `call`

```elixir
@spec call(atom(), [any()]) :: any()
```

---

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