ds: number: convert to new object system
This commit is contained in:
@@ -1,11 +1,10 @@
|
||||
#ifndef BLUELIB_NUMBER_H
|
||||
#define BLUELIB_NUMBER_H
|
||||
#ifndef BLUE_DS_NUMBER_H
|
||||
#define BLUE_DS_NUMBER_H
|
||||
|
||||
#include <blue/ds/object.h>
|
||||
#include <blue/ds/type.h>
|
||||
#include <blue/core/macros.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
#define B_NUMBER(p) ((b_number *)(p))
|
||||
B_DECLS_BEGIN;
|
||||
|
||||
#define B_INT8(v) (b_number_create_int8(v))
|
||||
#define B_INT16(v) (b_number_create_int16(v))
|
||||
@@ -40,7 +39,12 @@
|
||||
#define B_NUMBER_IVAL(p) (b_number_get_size_t(p))
|
||||
#define B_NUMBER_FVAL(p) (b_number_get_double(p))
|
||||
|
||||
typedef struct b_number b_number;
|
||||
#define B_TYPE_NUMBER (b_number_get_type())
|
||||
|
||||
B_DECLARE_TYPE(b_number);
|
||||
|
||||
B_TYPE_CLASS_DECLARATION_BEGIN(b_number)
|
||||
B_TYPE_CLASS_DECLARATION_END(b_number)
|
||||
|
||||
typedef enum b_number_type {
|
||||
B_NUMBER_INT8,
|
||||
@@ -66,15 +70,9 @@ typedef enum b_number_type {
|
||||
B_NUMBER_QWORD = B_NUMBER_INT64,
|
||||
} b_number_type;
|
||||
|
||||
BLUE_API b_type b_number_get_type(void);
|
||||
|
||||
BLUE_API b_number *b_number_create(b_number_type type, void *value_ptr);
|
||||
static inline b_number *b_number_retain(b_number *number)
|
||||
{
|
||||
return B_NUMBER(b_retain(B_DSREF(number)));
|
||||
}
|
||||
static inline void b_number_release(b_number *number)
|
||||
{
|
||||
b_release(B_DSREF(number));
|
||||
}
|
||||
|
||||
static inline b_number *b_number_create_int8(int8_t value)
|
||||
{
|
||||
@@ -133,7 +131,7 @@ static inline b_number *b_number_create_size_t(size_t value)
|
||||
return b_number_create(B_NUMBER_SIZE_T, &value);
|
||||
}
|
||||
|
||||
BLUE_API b_number_type b_number_get_type(const b_number *number);
|
||||
BLUE_API b_number_type b_number_get_number_type(const b_number *number);
|
||||
BLUE_API int b_number_get_value(
|
||||
const b_number *number, b_number_type type, void *value_ptr);
|
||||
|
||||
@@ -251,4 +249,6 @@ BLUE_API void b_number_set_nan_negative(b_number *number, bool v);
|
||||
|
||||
BLUE_API size_t b_number_data_size(const b_number *number);
|
||||
|
||||
B_DECLS_END;
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user