> For the complete documentation index, see [llms.txt](https://alexisvisco.gitbook.io/kcd/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://alexisvisco.gitbook.io/kcd/input/supported-types.md).

# Supported field types

KCD supports natives types, standard unmarshaler, and custom types.

### Native types

All of this can be assigned from a string. for example, if you try to set a value of `-1` to a uint you will get a bad request error. I let you try.

* String
* Int
* Int8
* Int16
* Int32
* Int64
* Uint
* Uint8
* Uint16
* Uint32
* Uint64
* Bool
* Float32
* Float64

### Standard Unmarshaler

* [Text Unmarshaler](https://golang.org/pkg/encoding/#TextUnmarshaler)
* [Binary Unmarshaler](https://golang.org/pkg/encoding/#BinaryUnmarshaler)
* [JSON Unmarshaler](https://golang.org/pkg/encoding/json/#Unmarshaler)

### Custom types

Custom types are used with contexts: You can set your field type as the type of the value of your context et voilà!

{% hint style="info" %}
For more information please visit the [decoding package](https://github.com/expectedsh/kcd/blob/master/internal/decoder/field_setter.go) from KCD. &#x20;
{% endhint %}
