use bitflags::bitflags;
pub enum Error {
Space(String),
}
bitflags! {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
pub struct ModelFlag: u32 {
#[doc(alias = "BablModelFlag_BABL_MODEL_FLAG_ALPHA")]
const ALPHA = ffi::BablModelFlag_BABL_MODEL_FLAG_ALPHA;
#[doc(alias = "BablModelFlag_BABL_MODEL_FLAG_ASSOCIATED")]
const ASSOCIATED = ffi::BablModelFlag_BABL_MODEL_FLAG_ASSOCIATED;
#[doc(alias = "BablModelFlag_BABL_MODEL_FLAG_INVERTED")]
const INVERTED = ffi::BablModelFlag_BABL_MODEL_FLAG_INVERTED;
#[doc(alias = "BablModelFlag_BABL_MODEL_FLAG_LINEAR")]
const LINEAR = ffi::BablModelFlag_BABL_MODEL_FLAG_LINEAR;
#[doc(alias = "BablModelFlag_BABL_MODEL_FLAG_NONLINEAR")]
const NON_LINEAR = ffi::BablModelFlag_BABL_MODEL_FLAG_NONLINEAR;
#[doc(alias = "BablModelFlag_BABL_MODEL_FLAG_PERCEPTUAL")]
const PERCEPTUAL = ffi::BablModelFlag_BABL_MODEL_FLAG_PERCEPTUAL;
#[doc(alias = "BablModelFlag_BABL_MODEL_FLAG_GRAY")]
const GREY = ffi::BablModelFlag_BABL_MODEL_FLAG_GRAY;
#[doc(alias = "BablModelFlag_BABL_MODEL_FLAG_RGB")]
const RGB = ffi::BablModelFlag_BABL_MODEL_FLAG_RGB;
#[doc(alias = "BablModelFlag_BABL_MODEL_FLAG_CIE")]
const CIE = ffi::BablModelFlag_BABL_MODEL_FLAG_CIE;
#[doc(alias = "BablModelFlag_BABL_MODEL_FLAG_CMYK")]
const CMYK = ffi::BablModelFlag_BABL_MODEL_FLAG_CMYK;
}
}
#[derive(Debug, Clone, Copy)]
pub enum SpaceFlags {
#[doc(alias = "BablSpaceFlags_BABL_SPACE_FLAG_NONE")]
None,
#[doc(alias = "BablSpaceFlags_BABL_SPACE_FLAG_EQUALIZE")]
Equalize,
__Unknown(u32),
}
impl From<ffi::BablSpaceFlags> for SpaceFlags {
fn from(space_flags: ffi::BablSpaceFlags) -> Self {
match space_flags {
ffi::BablSpaceFlags_BABL_SPACE_FLAG_NONE => Self::None,
ffi::BablSpaceFlags_BABL_SPACE_FLAG_EQUALIZE => Self::Equalize,
u => Self::__Unknown(u),
}
}
}
impl From<SpaceFlags> for ffi::BablSpaceFlags {
fn from(space: SpaceFlags) -> Self {
match space {
SpaceFlags::Equalize => ffi::BablSpaceFlags_BABL_SPACE_FLAG_EQUALIZE,
SpaceFlags::None => ffi::BablSpaceFlags_BABL_SPACE_FLAG_NONE,
SpaceFlags::__Unknown(u) => u,
}
}
}
#[derive(Debug, Clone, Copy)]
pub enum IccIntent {
#[doc(alias = "BablIccIntent_BABL_ICC_INTENT_PERCEPTUAL")]
Perceptual,
#[doc(alias = "BablIccIntent_BABL_ICC_INTENT_RELATIVE_COLORIMETRIC")]
RelativeColorimetric,
#[doc(alias = "BablIccIntent_BABL_ICC_INTENT_SATURATION")]
Saturation,
#[doc(alias = "BablIccIntent_BABL_ICC_INTENT_ABSOLUTE_COLORIMETRIC")]
AbsoluteColorimetric,
#[doc(alias = "BablIccIntent_BABL_ICC_INTENT_PERFORMANCE")]
Performance,
__Unknown(u32),
}
impl From<ffi::BablIccIntent> for IccIntent {
fn from(icc_intent: ffi::BablIccIntent) -> Self {
match icc_intent {
ffi::BablIccIntent_BABL_ICC_INTENT_PERCEPTUAL => Self::Perceptual,
ffi::BablIccIntent_BABL_ICC_INTENT_RELATIVE_COLORIMETRIC => Self::RelativeColorimetric,
ffi::BablIccIntent_BABL_ICC_INTENT_SATURATION => Self::Saturation,
ffi::BablIccIntent_BABL_ICC_INTENT_ABSOLUTE_COLORIMETRIC => Self::AbsoluteColorimetric,
ffi::BablIccIntent_BABL_ICC_INTENT_PERFORMANCE => Self::Performance,
u => Self::__Unknown(u),
}
}
}
impl From<IccIntent> for ffi::BablIccIntent {
fn from(icc_intent: IccIntent) -> Self {
match icc_intent {
IccIntent::Perceptual => ffi::BablIccIntent_BABL_ICC_INTENT_PERCEPTUAL,
IccIntent::RelativeColorimetric => {
ffi::BablIccIntent_BABL_ICC_INTENT_RELATIVE_COLORIMETRIC
}
IccIntent::Saturation => ffi::BablIccIntent_BABL_ICC_INTENT_SATURATION,
IccIntent::AbsoluteColorimetric => {
ffi::BablIccIntent_BABL_ICC_INTENT_ABSOLUTE_COLORIMETRIC
}
IccIntent::Performance => ffi::BablIccIntent_BABL_ICC_INTENT_PERFORMANCE,
IccIntent::__Unknown(u) => u,
}
}
}