Inflection
Morphology Inflection
Loading...
Searching...
No Matches
api.h
1/*
2 * Copyright 2018-2024 Apple Inc. All rights reserved.
3 */
4#pragma once
5
9#include <inflection/version.h>
10
11#if !INFLECTION_STATIC
12#define INFLECTION_EXPORT_API __attribute__((visibility("default")))
13#else
14#define INFLECTION_EXPORT_API
15#endif
16
20#define INFLECTION_CLASS_API INFLECTION_EXPORT_API
24#define INFLECTION_INTERNAL_API INFLECTION_EXPORT_API
28#define INFLECTION_ENUM(_type, _name) enum _name : _type; typedef enum _name _name; enum _name : _type
29
33#ifdef __cplusplus
34#define INFLECTION_CAPI extern "C" INFLECTION_EXPORT_API
35#define INFLECTION_CTYPE(name) extern "C" {typedef struct name name;}
36#define INFLECTION_CBEGIN extern "C" {
37#define INFLECTION_CEND }
38#else
39#define INFLECTION_CAPI extern INFLECTION_EXPORT_API
40#define INFLECTION_CTYPE(name) typedef struct name name;
41#define INFLECTION_CBEGIN
42#define INFLECTION_CEND
43#include <stdint.h>
44
45#if (defined(__clang__) && defined(__CHAR16_TYPE__) && !defined(char16_t))
46typedef __CHAR16_TYPE__ char16_t;
47#else
48// This is typically gcc
49#include <uchar.h>
50#endif
51
52#endif