# `Estructura.StreamData`
[🔗](https://github.com/am-kantox/estructura/blob/v1.12.0/lib/estructura/stream_data.ex#L1)

Additional generators to be used with `__generator__/1` generated by `Use Estructura`

# `t`

```elixir
@opaque t(a)
```

An opaque type that represents an `Estructura.StreamData` generator that generates values
of type `a`.

# `date`

```elixir
@spec date(keyword()) :: StreamData.t(Date.t())
```

Generates an instance of `Date.t()`. This generator is unshrinkable.

# `datetime`

```elixir
@spec datetime(keyword()) :: StreamData.t(DateTime.t())
```

Generates an instance of `DateTime.t()`. This generator is unshrinkable.

# `id`

```elixir
@spec id(keyword()) :: StreamData.t((term() -&gt; term()))
```

Identity function as a stream data generator

# `ip4`

```elixir
@spec ip4(keyword()) :: StreamData.t(Estructura.Nested.Type.IP.t())
```

Generates an instance of `Estructura.Nested.Type.IP.t()`. This generator is unshrinkable.

# `ip6`

```elixir
@spec ip6(keyword()) :: StreamData.t(Estructura.Nested.Type.IP.t())
```

Generates an instance of `Estructura.Nested.Type.IP.t()`. This generator is unshrinkable.

# `ip`

```elixir
@spec ip(keyword()) :: StreamData.t(Estructura.Nested.Type.IP.t())
```

Generates an instance of `Estructura.Nested.Type.IP.t()`. This generator is unshrinkable.

# `iterate`

```elixir
@spec iterate(value, (value -&gt; value)) :: StreamData.t(value) when value: term()
```

Helper to generate _unshrinkable_ streams as per `Stream.iterate/2`.

# `time`

```elixir
@spec time(keyword()) :: StreamData.t(Time.t())
```

Generates an instance of `Time.t()`. This generator is unshrinkable.

# `uri`

```elixir
@spec uri(keyword()) :: StreamData.t(URI.t())
```

Generates an instance of `URI.t()`. This generator is unshrinkable.

_See:_ `URI`.

```elixir
[scheme]://[userinfo]@[host]:[port][path]?[query]#[fragment]
```

# `uuid`

```elixir
@spec uuid(keyword()) :: StreamData.t(Estructura.Nested.Type.UUID.t())
```

Generates an instance of `Estructura.Nested.Type.UUID.t()`. This generator is unshrinkable.

**NB** versions `3` and `5` require mandatory `namespace`/`uuid` and `name` options passed.

---

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