# `Clarity.Vertex.Util`
[🔗](https://github.com/team-alembic/clarity/blob/v0.5.1/lib/clarity/vertex/util.ex#L1)

Utility functions for working with vertices.

# `id`

```elixir
@spec id(module(), [module() | atom() | String.t()]) :: String.t()
```

Generates a vertex ID from a vertex type module and a list of parts.

## Parameters

  * `vertex_type` - The vertex type module (e.g., `Clarity.Vertex.Module`)
  * `parts` - A list of modules, atoms, or strings to include in the ID

## Examples

    iex> Clarity.Vertex.Util.id(Clarity.Vertex.Module, [String])
    "module:string"

    iex> Clarity.Vertex.Util.id(Clarity.Vertex.Ash.Resource, [Demo.Accounts.User])
    "ash-resource:demo-accounts-user"

    iex> Clarity.Vertex.Util.id(Clarity.Vertex.Ash.Attribute, [Demo.Accounts.User, :email])
    "ash-attribute:demo-accounts-user:email"

    iex> Clarity.Vertex.Util.id(Clarity.Vertex.Root, ["custom", :part])
    "root:custom:part"

---

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