Packages

Etcd APIv2 Client for Elixir

Current section

Files

Jump to
etcd lib node.ex
Raw

lib/node.ex

defmodule Etcd.Node do
@derive [Access,Collectable]
defstruct [
dir: false,
key: nil,
nodes: nil,
createdIndex: nil,
modifiedIndex: nil,
ttl: nil,
expiration: nil,
]
def from_map(map) do
load_nodes(Enum.into(map, %Etcd.Node{}, fn({k,v})->{String.to_existing_atom(k),v} end))
end
defp load_nodes(%{dir: false} = node), do: node
defp load_nodes(%{dir: true} = node), do: %{node | nodes: load_nodes(node.nodes) }
defp load_nodes(nil), do: nil
defp load_nodes(lst) when is_list(lst), do: Enum.map(lst, &from_map/1)
end