# `NebulaGraphEx.Types.Edge`
[🔗](https://github.com/VChain/nebula_graph_ex/blob/v0.1.10/lib/nebula_graph_ex/types/edge.ex#L1)

Represents a directed edge (relationship) in NebulaGraph.

## Fields

* `:src` — source vertex ID (decoded Elixir term).
* `:dst` — destination vertex ID (decoded Elixir term).
* `:name` — edge type name binary, e.g. `"follow"`.
* `:type` — raw integer edge type (positive = outgoing, negative = incoming).
* `:ranking` — edge ranking integer (used to distinguish parallel edges).
* `:props` — map of `binary() => term()` property values.

## Example

    %NebulaGraphEx.Types.Edge{
      src: "player100",
      dst: "player101",
      name: "follow",
      type: 1,
      ranking: 0,
      props: %{"degree" => 95}
    }

# `t`

```elixir
@type t() :: %NebulaGraphEx.Types.Edge{
  dst: term(),
  name: String.t() | nil,
  props: %{required(String.t()) =&gt; term()},
  ranking: integer(),
  src: term(),
  type: integer()
}
```

# `incoming?`

```elixir
@spec incoming?(t()) :: boolean()
```

Returns `true` if the edge points inward (negative type).

# `outgoing?`

```elixir
@spec outgoing?(t()) :: boolean()
```

Returns `true` if the edge points outward (positive type).

# `prop`

```elixir
@spec prop(t(), String.t()) :: term()
```

Returns a property value by name, or `nil`.

---

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