# `RustQ.Syn.Trait`
[🔗](https://github.com/elixir-crab/rustq/blob/v1.0.0-rc.19/lib/rustq/syn.ex#L658)

Rust trait metadata: its name, doc comments, associated types, and the methods it declares
or provides.

`types` pairs each associated type with the traits bounding it, named by the last segment
of their path, as in `{"IntoIter", ["Iterator"]}`.

# `t`

```elixir
@type t() :: %RustQ.Syn.Trait{
  docs: [String.t()],
  methods: [RustQ.Syn.Method.t()],
  name: String.t(),
  source_line: pos_integer() | nil,
  source_path: Path.t() | nil,
  types: [{String.t(), [String.t()]}],
  visibility: :public | :private
}
```

---

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