# bson_type_t

## BSON Type Enumeration

## Synopsis

    #include <bson.h>

    typedef enum
    {
       BSON_TYPE_EOD        = 0x00,
       BSON_TYPE_DOUBLE     = 0x01,
       BSON_TYPE_UTF8       = 0x02,
       BSON_TYPE_DOCUMENT   = 0x03,
       BSON_TYPE_ARRAY      = 0x04,
       BSON_TYPE_BINARY     = 0x05,
       BSON_TYPE_UNDEFINED  = 0x06,
       BSON_TYPE_OID        = 0x07,
       BSON_TYPE_BOOL       = 0x08,
       BSON_TYPE_DATE_TIME  = 0x09,
       BSON_TYPE_NULL       = 0x0A,
       BSON_TYPE_REGEX      = 0x0B,
       BSON_TYPE_DBPOINTER  = 0x0C,
       BSON_TYPE_CODE       = 0x0D,
       BSON_TYPE_SYMBOL     = 0x0E,
       BSON_TYPE_CODEWSCOPE = 0x0F,
       BSON_TYPE_INT32      = 0x10,
       BSON_TYPE_TIMESTAMP  = 0x11,
       BSON_TYPE_INT64      = 0x12,
       BSON_TYPE_MAXKEY     = 0x7F,
       BSON_TYPE_MINKEY     = 0xFF,
    } bson_type_t;

## Description

The bson_type_t enumeration contains all of the types from the BSON Specification. It can be used to determine the type of a field at runtime.

## Example

### Check BSON Field Type

    bson_iter_t iter;

    if (bson_iter_init_find (&iter, doc, "foo") &&
        (BSON_TYPE_INT32 == bson_iter_type (&iter))) {
       printf ("'foo' is an int32.\n");
    }