# `NervesGate.Network.Adapter`

Infrastructure boundary. Implementations may configure only LAN interfaces;
USB provisioning must remain independent. Host implementations never touch
workstation interfaces. Hardware writes run in the network server's bounded worker.

# `apply_config`

```elixir
@callback apply_config(map(), term()) :: :ok | {:error, term()}
```

# `load`

```elixir
@callback load(term()) :: {:ok, map()} | {:error, term()}
```

# `observations`
*optional* 

```elixir
@callback observations(term()) :: [{atom(), [String.t()]}]
```

# `restore`

```elixir
@callback restore(map(), term()) :: :ok | {:error, term()}
```

# `save`

```elixir
@callback save(map(), term()) :: :ok | {:error, term()}
```

# `snapshot`

```elixir
@callback snapshot(term()) :: map() | nil
```

# `apply_config`

# `load`

# `restore`

# `save`

# `snapshot`

---

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