rute 0.0.4

UI library implemented on top of Qt
// This file is auto-generated by rute_gen. DO NOT EDIT!
#pragma once

#include <stdbool.h>
#include <stdint.h>

#include "../rute_base.h"

#ifdef __cplusplus
extern "C" {
#endif
#include "color_ffi.h"

struct RUColorFuncs;
struct RUColor;

typedef struct RUColorFuncs {
    void (*destroy)(struct RUBase* self);
    bool (*is_valid)(struct RUBase* self_c);
    const char* (*name)(struct RUBase* self_c);
    const char* (*name_2)(struct RUBase* self_c, int format);
    void (*set_named_color)(struct RUBase* self_c, const char* name);
    int (*spec)(struct RUBase* self_c);
    int (*alpha)(struct RUBase* self_c);
    void (*set_alpha)(struct RUBase* self_c, int alpha);
    float (*alpha_f)(struct RUBase* self_c);
    void (*set_alpha_f)(struct RUBase* self_c, float alpha);
    int (*red)(struct RUBase* self_c);
    int (*green)(struct RUBase* self_c);
    int (*blue)(struct RUBase* self_c);
    void (*set_red)(struct RUBase* self_c, int red);
    void (*set_green)(struct RUBase* self_c, int green);
    void (*set_blue)(struct RUBase* self_c, int blue);
    float (*red_f)(struct RUBase* self_c);
    float (*green_f)(struct RUBase* self_c);
    float (*blue_f)(struct RUBase* self_c);
    void (*set_red_f)(struct RUBase* self_c, float red);
    void (*set_green_f)(struct RUBase* self_c, float green);
    void (*set_blue_f)(struct RUBase* self_c, float blue);
    void (*set_rgb)(struct RUBase* self_c, int r, int g, int b, int a);
    void (*set_rgb_f)(struct RUBase* self_c, float r, float g, float b,
                      float a);
    int (*hue)(struct RUBase* self_c);
    int (*saturation)(struct RUBase* self_c);
    int (*hsv_hue)(struct RUBase* self_c);
    int (*hsv_saturation)(struct RUBase* self_c);
    int (*value)(struct RUBase* self_c);
    float (*hue_f)(struct RUBase* self_c);
    float (*saturation_f)(struct RUBase* self_c);
    float (*hsv_hue_f)(struct RUBase* self_c);
    float (*hsv_saturation_f)(struct RUBase* self_c);
    float (*value_f)(struct RUBase* self_c);
    void (*set_hsv)(struct RUBase* self_c, int h, int s, int v, int a);
    void (*set_hsv_f)(struct RUBase* self_c, float h, float s, float v,
                      float a);
    int (*cyan)(struct RUBase* self_c);
    int (*magenta)(struct RUBase* self_c);
    int (*yellow)(struct RUBase* self_c);
    int (*black)(struct RUBase* self_c);
    float (*cyan_f)(struct RUBase* self_c);
    float (*magenta_f)(struct RUBase* self_c);
    float (*yellow_f)(struct RUBase* self_c);
    float (*black_f)(struct RUBase* self_c);
    void (*set_cmyk)(struct RUBase* self_c, int c, int m, int y, int k, int a);
    void (*set_cmyk_f)(struct RUBase* self_c, float c, float m, float y,
                       float k, float a);
    int (*hsl_hue)(struct RUBase* self_c);
    int (*hsl_saturation)(struct RUBase* self_c);
    int (*lightness)(struct RUBase* self_c);
    float (*hsl_hue_f)(struct RUBase* self_c);
    float (*hsl_saturation_f)(struct RUBase* self_c);
    float (*lightness_f)(struct RUBase* self_c);
    void (*set_hsl)(struct RUBase* self_c, int h, int s, int l, int a);
    void (*set_hsl_f)(struct RUBase* self_c, float h, float s, float l,
                      float a);
    struct RUColor (*to_rgb)(struct RUBase* self_c);
    struct RUColor (*to_hsv)(struct RUBase* self_c);
    struct RUColor (*to_cmyk)(struct RUBase* self_c);
    struct RUColor (*to_hsl)(struct RUBase* self_c);
    struct RUColor (*convert_to)(struct RUBase* self_c, int color_spec);
    struct RUColor (*from_rgb_2)(struct RUBase* self_c, int r, int g, int b,
                                 int a);
    struct RUColor (*from_rgb_f)(struct RUBase* self_c, float r, float g,
                                 float b, float a);
    struct RUColor (*from_rgba64)(struct RUBase* self_c, uint16_t r, uint16_t g,
                                  uint16_t b, uint16_t a);
    struct RUColor (*from_hsv)(struct RUBase* self_c, int h, int s, int v,
                               int a);
    struct RUColor (*from_hsv_f)(struct RUBase* self_c, float h, float s,
                                 float v, float a);
    struct RUColor (*from_cmyk)(struct RUBase* self_c, int c, int m, int y,
                                int k, int a);
    struct RUColor (*from_cmyk_f)(struct RUBase* self_c, float c, float m,
                                  float y, float k, float a);
    struct RUColor (*from_hsl)(struct RUBase* self_c, int h, int s, int l,
                               int a);
    struct RUColor (*from_hsl_f)(struct RUBase* self_c, float h, float s,
                                 float l, float a);
    struct RUColor (*light)(struct RUBase* self_c, int f);
    struct RUColor (*lighter)(struct RUBase* self_c, int f);
    struct RUColor (*dark)(struct RUBase* self_c, int f);
    struct RUColor (*darker)(struct RUBase* self_c, int f);
    bool (*is_valid_color)(struct RUBase* self_c, const char* name);
} RUColorFuncs;

typedef struct RUColorAllFuncs {
    struct RUColorFuncs* color_funcs;
} RUColorAllFuncs;

typedef struct RUColor {
    RUBase* qt_data;
    RUBase* host_data;
    struct RUColorAllFuncs* all_funcs;
} RUColor;

extern RUColorFuncs s_color_funcs;
extern RUColorAllFuncs s_color_all_funcs;

#ifdef __cplusplus
}
#endif