# `locus_mmdb_data_raw`
[🔗](https://github.com/g-andrade/locus/blob/2.3.15/src/locus_mmdb_data_raw.erl#L24)

API for working with MMDB - raw data representation (it preserves
the original type for when it's necessary to distinguish between e.g.
`{uint32, 0}` and `{uint16, 0}`, which `m:locus_mmdb_data` does not allow for.)

See [MaxMind DB File Format Specification](https://maxmind.github.io/MaxMind-DB/).

# `array`

```erlang
-type array() :: {array, [value()]}.
```

# `boolean_`

```erlang
-type boolean_() :: {boolean, locus_mmdb_data:boolean_()}.
```

# `bytes`

```erlang
-type bytes() :: {bytes, locus_mmdb_data:bytes()}.
```

# `double`

```erlang
-type double() :: {double, locus_mmdb_data:double()}.
```

# `float_`

```erlang
-type float_() :: {float, locus_mmdb_data:float_()}.
```

# `int32`

```erlang
-type int32() :: {int32, locus_mmdb_data:int32()}.
```

# `map_`

```erlang
-type map_() :: {map, #{locus_mmdb_data:utf8_string() => value()}}.
```

# `uint16`

```erlang
-type uint16() :: {uint16, locus_mmdb_data:uint16()}.
```

# `uint32`

```erlang
-type uint32() :: {uint32, locus_mmdb_data:uint32()}.
```

# `uint64`

```erlang
-type uint64() :: {uint64, locus_mmdb_data:uint64()}.
```

# `uint128`

```erlang
-type uint128() :: {uint128, locus_mmdb_data:uint128()}.
```

# `utf8_string`

```erlang
-type utf8_string() :: {utf8_string, locus_mmdb_data:utf8_string()}.
```

# `value`

```erlang
-type value() ::
          utf8_string() |
          double() |
          bytes() |
          uint16() |
          uint32() |
          map_() |
          int32() |
          uint64() |
          uint128() |
          array() |
          boolean_() |
          float_().
```

# `value_tag`

```erlang
-type value_tag() ::
          pointer | utf8_string | double | bytes | uint16 | uint32 | map | int32 | uint64 | uint128 |
          array | boolean | float.
```

---

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