libpostal-sys 0.1.1

Low-level wrappers for libpostal address normalization (with locks to support thread-safe initialization)
Documentation
// Only need these for the in-memory dictionaries
gazetteer_t gazetteer_config[] = {
    {DICTIONARY_ACADEMIC_DEGREE, LIBPOSTAL_ADDRESS_NAME},
    {DICTIONARY_AMBIGUOUS_EXPANSION, LIBPOSTAL_ADDRESS_NONE},
    {DICTIONARY_BUILDING_TYPE, LIBPOSTAL_ADDRESS_NAME | LIBPOSTAL_ADDRESS_HOUSE_NUMBER | LIBPOSTAL_ADDRESS_STREET | LIBPOSTAL_ADDRESS_UNIT},
    {DICTIONARY_CATEGORY, LIBPOSTAL_ADDRESS_CATEGORY},
    {DICTIONARY_CHAIN, LIBPOSTAL_ADDRESS_NAME},
    {DICTIONARY_COMPANY_TYPE, LIBPOSTAL_ADDRESS_NAME},
    {DICTIONARY_CONCATENATED_PREFIX_SEPARABLE, LIBPOSTAL_ADDRESS_ANY},
    {DICTIONARY_CONCATENATED_SUFFIX_INSEPARABLE, LIBPOSTAL_ADDRESS_ANY},
    {DICTIONARY_CONCATENATED_SUFFIX_SEPARABLE, LIBPOSTAL_ADDRESS_ANY},
    {DICTIONARY_CROSS_STREET, LIBPOSTAL_ADDRESS_STREET},
    {DICTIONARY_DIRECTIONAL, LIBPOSTAL_ADDRESS_ANY},
    {DICTIONARY_ELISION, LIBPOSTAL_ADDRESS_ANY},
    {DICTIONARY_ENTRANCE, LIBPOSTAL_ADDRESS_ENTRANCE},
    {DICTIONARY_GIVEN_NAME, LIBPOSTAL_ADDRESS_STREET | LIBPOSTAL_ADDRESS_NAME},
    {DICTIONARY_HOUSE_NUMBER, LIBPOSTAL_ADDRESS_HOUSE_NUMBER},
    {DICTIONARY_LEVEL_NUMBERED, LIBPOSTAL_ADDRESS_LEVEL},
    {DICTIONARY_LEVEL_STANDALONE, LIBPOSTAL_ADDRESS_LEVEL},
    {DICTIONARY_LEVEL_MEZZANINE, LIBPOSTAL_ADDRESS_LEVEL},
    {DICTIONARY_LEVEL_BASEMENT, LIBPOSTAL_ADDRESS_LEVEL},
    {DICTIONARY_LEVEL_SUB_BASEMENT, LIBPOSTAL_ADDRESS_LEVEL},
    {DICTIONARY_NEAR, LIBPOSTAL_ADDRESS_NEAR},
    {DICTIONARY_NULL, LIBPOSTAL_ADDRESS_ANY},
    {DICTIONARY_NAMED_ORGANIZATION, LIBPOSTAL_ADDRESS_NAME},
    {DICTIONARY_NAMED_PERSON, LIBPOSTAL_ADDRESS_NAME | LIBPOSTAL_ADDRESS_STREET},
    {DICTIONARY_NO_NUMBER, LIBPOSTAL_ADDRESS_HOUSE_NUMBER},
    {DICTIONARY_NUMBER, LIBPOSTAL_ADDRESS_HOUSE_NUMBER | LIBPOSTAL_ADDRESS_UNIT | LIBPOSTAL_ADDRESS_LEVEL | LIBPOSTAL_ADDRESS_PO_BOX | LIBPOSTAL_ADDRESS_STAIRCASE | LIBPOSTAL_ADDRESS_ENTRANCE},
    {DICTIONARY_PERSONAL_SUFFIX, LIBPOSTAL_ADDRESS_NAME | LIBPOSTAL_ADDRESS_STREET},
    {DICTIONARY_PERSONAL_TITLE, LIBPOSTAL_ADDRESS_NAME | LIBPOSTAL_ADDRESS_STREET},
    {DICTIONARY_PLACE_NAME, LIBPOSTAL_ADDRESS_NAME | LIBPOSTAL_ADDRESS_STREET},
    {DICTIONARY_POST_OFFICE, LIBPOSTAL_ADDRESS_PO_BOX},
    {DICTIONARY_POSTAL_CODE, LIBPOSTAL_ADDRESS_POSTAL_CODE},
    {DICTIONARY_QUALIFIER, LIBPOSTAL_ADDRESS_STREET},
    {DICTIONARY_STAIRCASE, LIBPOSTAL_ADDRESS_STAIRCASE},
    {DICTIONARY_STOPWORD, LIBPOSTAL_ADDRESS_ANY},
    {DICTIONARY_STREET_NAME, LIBPOSTAL_ADDRESS_STREET},
    {DICTIONARY_STREET_TYPE, LIBPOSTAL_ADDRESS_STREET},
    {DICTIONARY_SURNAME, LIBPOSTAL_ADDRESS_STREET | LIBPOSTAL_ADDRESS_NAME},
    {DICTIONARY_SYNONYM, LIBPOSTAL_ADDRESS_ANY},
    {DICTIONARY_TOPONYM, LIBPOSTAL_ADDRESS_NAME | LIBPOSTAL_ADDRESS_STREET | LIBPOSTAL_ADDRESS_TOPONYM},
    {DICTIONARY_UNIT_NUMBERED, LIBPOSTAL_ADDRESS_UNIT},
    {DICTIONARY_UNIT_STANDALONE, LIBPOSTAL_ADDRESS_UNIT},
    {DICTIONARY_UNIT_DIRECTION, LIBPOSTAL_ADDRESS_UNIT}

};


#define NUM_DICTIONARY_TYPES sizeof(gazetteer_config) / sizeof(gazetteer_t)