/* +----------------------------------------------------------------------+ | Copyright © The PHP Group and Contributors. | +----------------------------------------------------------------------+ | This source file is subject to the Modified BSD License that is | | bundled with this package in the file LICENSE, and is available | | through the World Wide Web at . | | | | SPDX-License-Identifier: BSD-3-Clause | +----------------------------------------------------------------------+ | Authors: Bogdan Ungureanu | +----------------------------------------------------------------------+ */ #ifndef RANGEFORMATTER_CLASS_H #define RANGEFORMATTER_CLASS_H #include #ifdef __cplusplus using icu::number::LocalizedNumberRangeFormatter; #else typedef void LocalizedNumberRangeFormatter; #endif typedef struct { // error handling intl_error error; // formatter handling LocalizedNumberRangeFormatter* unumrf; } rangeformatter_data; typedef struct { rangeformatter_data nrf_data; zend_object zo; } IntlNumberRangeFormatter_object; static inline IntlNumberRangeFormatter_object *php_intl_numberrangeformatter_fetch_object(zend_object *obj) { return ZEND_CONTAINER_OF(obj, IntlNumberRangeFormatter_object, zo); } #define Z_INTL_RANGEFORMATTER_P(zv) php_intl_numberrangeformatter_fetch_object(Z_OBJ_P(zv)) #define RANGEFORMATTER_ERROR(nfo) (nfo)->nrf_data.error #define RANGEFORMATTER_ERROR_P(nfo) &(RANGEFORMATTER_ERROR(nfo)) #define RANGEFORMATTER_OBJECT(nfo) (nfo)->nrf_data.unumrf void rangeformatter_register_class(void); #endif