Add types module
Move `CompositeOperator` and `ResourceType` to the `types` module
This commit is contained in:
@ -41,10 +41,12 @@ pub use conversions::ToMagick;
|
||||
pub use result::MagickError;
|
||||
use result::Result;
|
||||
pub use wand::*;
|
||||
pub use types::*;
|
||||
|
||||
mod conversions;
|
||||
mod result;
|
||||
mod wand;
|
||||
mod types;
|
||||
include!(concat!(env!("OUT_DIR"), "/bindings.rs"));
|
||||
|
||||
/// This function must be called before any other ImageMagick operations
|
||||
|
||||
117
src/types/composite_operator.rs
Normal file
117
src/types/composite_operator.rs
Normal file
@ -0,0 +1,117 @@
|
||||
use crate::bindings;
|
||||
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||
#[repr(u32)]
|
||||
pub enum CompositeOperator {
|
||||
Undefined = bindings::CompositeOperator_UndefinedCompositeOp,
|
||||
Alpha = bindings::CompositeOperator_AlphaCompositeOp,
|
||||
Atop = bindings::CompositeOperator_AtopCompositeOp,
|
||||
Blend = bindings::CompositeOperator_BlendCompositeOp,
|
||||
Blur = bindings::CompositeOperator_BlurCompositeOp,
|
||||
Bumpmap = bindings::CompositeOperator_BumpmapCompositeOp,
|
||||
ChangeMask = bindings::CompositeOperator_ChangeMaskCompositeOp,
|
||||
Clear = bindings::CompositeOperator_ClearCompositeOp,
|
||||
ColorBurn = bindings::CompositeOperator_ColorBurnCompositeOp,
|
||||
ColorDodge = bindings::CompositeOperator_ColorDodgeCompositeOp,
|
||||
Colorize = bindings::CompositeOperator_ColorizeCompositeOp,
|
||||
CopyBlack = bindings::CompositeOperator_CopyBlackCompositeOp,
|
||||
CopyBlue = bindings::CompositeOperator_CopyBlueCompositeOp,
|
||||
Copy = bindings::CompositeOperator_CopyCompositeOp,
|
||||
CopyCyan = bindings::CompositeOperator_CopyCyanCompositeOp,
|
||||
CopyGreen = bindings::CompositeOperator_CopyGreenCompositeOp,
|
||||
CopyMagenta = bindings::CompositeOperator_CopyMagentaCompositeOp,
|
||||
CopyAlpha = bindings::CompositeOperator_CopyAlphaCompositeOp,
|
||||
CopyRed = bindings::CompositeOperator_CopyRedCompositeOp,
|
||||
CopyYellow = bindings::CompositeOperator_CopyYellowCompositeOp,
|
||||
Darken = bindings::CompositeOperator_DarkenCompositeOp,
|
||||
DarkenIntensity = bindings::CompositeOperator_DarkenIntensityCompositeOp,
|
||||
Difference = bindings::CompositeOperator_DifferenceCompositeOp,
|
||||
Displace = bindings::CompositeOperator_DisplaceCompositeOp,
|
||||
Dissolve = bindings::CompositeOperator_DissolveCompositeOp,
|
||||
Distort = bindings::CompositeOperator_DistortCompositeOp,
|
||||
DivideDst = bindings::CompositeOperator_DivideDstCompositeOp,
|
||||
DivideSrc = bindings::CompositeOperator_DivideSrcCompositeOp,
|
||||
DstAtop = bindings::CompositeOperator_DstAtopCompositeOp,
|
||||
Dst = bindings::CompositeOperator_DstCompositeOp,
|
||||
DstIn = bindings::CompositeOperator_DstInCompositeOp,
|
||||
DstOut = bindings::CompositeOperator_DstOutCompositeOp,
|
||||
DstOver = bindings::CompositeOperator_DstOverCompositeOp,
|
||||
Exclusion = bindings::CompositeOperator_ExclusionCompositeOp,
|
||||
HardLight = bindings::CompositeOperator_HardLightCompositeOp,
|
||||
HardMix = bindings::CompositeOperator_HardMixCompositeOp,
|
||||
Hue = bindings::CompositeOperator_HueCompositeOp,
|
||||
In = bindings::CompositeOperator_InCompositeOp,
|
||||
Intensity = bindings::CompositeOperator_IntensityCompositeOp,
|
||||
Lighten = bindings::CompositeOperator_LightenCompositeOp,
|
||||
LightenIntensity = bindings::CompositeOperator_LightenIntensityCompositeOp,
|
||||
LinearBurn = bindings::CompositeOperator_LinearBurnCompositeOp,
|
||||
LinearDodge = bindings::CompositeOperator_LinearDodgeCompositeOp,
|
||||
LinearLight = bindings::CompositeOperator_LinearLightCompositeOp,
|
||||
Luminize = bindings::CompositeOperator_LuminizeCompositeOp,
|
||||
Mathematics = bindings::CompositeOperator_MathematicsCompositeOp,
|
||||
MinusDst = bindings::CompositeOperator_MinusDstCompositeOp,
|
||||
MinusSrc = bindings::CompositeOperator_MinusSrcCompositeOp,
|
||||
Modulate = bindings::CompositeOperator_ModulateCompositeOp,
|
||||
ModulusAdd = bindings::CompositeOperator_ModulusAddCompositeOp,
|
||||
ModulusSubtract = bindings::CompositeOperator_ModulusSubtractCompositeOp,
|
||||
Multiply = bindings::CompositeOperator_MultiplyCompositeOp,
|
||||
No = bindings::CompositeOperator_NoCompositeOp,
|
||||
Out = bindings::CompositeOperator_OutCompositeOp,
|
||||
Over = bindings::CompositeOperator_OverCompositeOp,
|
||||
Overlay = bindings::CompositeOperator_OverlayCompositeOp,
|
||||
PegtopLight = bindings::CompositeOperator_PegtopLightCompositeOp,
|
||||
PinLight = bindings::CompositeOperator_PinLightCompositeOp,
|
||||
Plus = bindings::CompositeOperator_PlusCompositeOp,
|
||||
Replace = bindings::CompositeOperator_ReplaceCompositeOp,
|
||||
Saturate = bindings::CompositeOperator_SaturateCompositeOp,
|
||||
Screen = bindings::CompositeOperator_ScreenCompositeOp,
|
||||
SoftLight = bindings::CompositeOperator_SoftLightCompositeOp,
|
||||
SrcAtop = bindings::CompositeOperator_SrcAtopCompositeOp,
|
||||
Src = bindings::CompositeOperator_SrcCompositeOp,
|
||||
SrcIn = bindings::CompositeOperator_SrcInCompositeOp,
|
||||
SrcOut = bindings::CompositeOperator_SrcOutCompositeOp,
|
||||
SrcOver = bindings::CompositeOperator_SrcOverCompositeOp,
|
||||
Threshold = bindings::CompositeOperator_ThresholdCompositeOp,
|
||||
VividLight = bindings::CompositeOperator_VividLightCompositeOp,
|
||||
Xor = bindings::CompositeOperator_XorCompositeOp,
|
||||
Stereo = bindings::CompositeOperator_StereoCompositeOp,
|
||||
Freeze = bindings::CompositeOperator_FreezeCompositeOp,
|
||||
Interpolate = bindings::CompositeOperator_InterpolateCompositeOp,
|
||||
Negate = bindings::CompositeOperator_NegateCompositeOp,
|
||||
Reflect = bindings::CompositeOperator_ReflectCompositeOp,
|
||||
SoftBurn = bindings::CompositeOperator_SoftBurnCompositeOp,
|
||||
SoftDodge = bindings::CompositeOperator_SoftDodgeCompositeOp,
|
||||
Stamp = bindings::CompositeOperator_StampCompositeOp,
|
||||
RMSE = bindings::CompositeOperator_RMSECompositeOp,
|
||||
SaliencyBlend = bindings::CompositeOperator_SaliencyBlendCompositeOp,
|
||||
SeamlessBlend = bindings::CompositeOperator_SeamlessBlendCompositeOp,
|
||||
}
|
||||
|
||||
impl Default for CompositeOperator {
|
||||
fn default() -> Self {
|
||||
return CompositeOperator::Over;
|
||||
}
|
||||
}
|
||||
|
||||
impl From<CompositeOperator> for bindings::CompositeOperator {
|
||||
fn from(value: CompositeOperator) -> Self {
|
||||
return value as bindings::CompositeOperator;
|
||||
}
|
||||
}
|
||||
|
||||
impl From<bindings::CompositeOperator> for CompositeOperator {
|
||||
fn from(value: bindings::CompositeOperator) -> Self {
|
||||
/*
|
||||
* SAFETY:
|
||||
*
|
||||
* `CompositeOperator` has the same repr as `bindings::CompositeOperator` - u32
|
||||
*
|
||||
* If `value` is less than SeamlessBlend than it is in the vaild range and can be safely
|
||||
* reinterpreted as `CompositeOperator`
|
||||
*/
|
||||
if value <= bindings::CompositeOperator_SeamlessBlendCompositeOp {
|
||||
return unsafe { std::mem::transmute(value) };
|
||||
}
|
||||
return CompositeOperator::default();
|
||||
}
|
||||
}
|
||||
7
src/types/mod.rs
Normal file
7
src/types/mod.rs
Normal file
@ -0,0 +1,7 @@
|
||||
mod composite_operator;
|
||||
mod metric_type;
|
||||
mod resource_type;
|
||||
|
||||
pub use self::composite_operator::CompositeOperator;
|
||||
pub use self::metric_type::MetricType;
|
||||
pub use self::resource_type::ResourceType;
|
||||
26
src/types/resource_type.rs
Normal file
26
src/types/resource_type.rs
Normal file
@ -0,0 +1,26 @@
|
||||
use std::convert::TryInto;
|
||||
|
||||
use crate::bindings;
|
||||
|
||||
/// Resource type to use with [set_resource_limit](crate::MagickWand::set_resource_limit)
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
pub enum ResourceType {
|
||||
Undefined = bindings::ResourceType_UndefinedResource as isize,
|
||||
Area = bindings::ResourceType_AreaResource as isize,
|
||||
Disk = bindings::ResourceType_DiskResource as isize,
|
||||
File = bindings::ResourceType_FileResource as isize,
|
||||
Height = bindings::ResourceType_HeightResource as isize,
|
||||
Map = bindings::ResourceType_MapResource as isize,
|
||||
Memory = bindings::ResourceType_MemoryResource as isize,
|
||||
Thread = bindings::ResourceType_ThreadResource as isize,
|
||||
Throttle = bindings::ResourceType_ThrottleResource as isize,
|
||||
Time = bindings::ResourceType_TimeResource as isize,
|
||||
Width = bindings::ResourceType_WidthResource as isize,
|
||||
ListLength = bindings::ResourceType_ListLengthResource as isize,
|
||||
}
|
||||
|
||||
impl From<ResourceType> for bindings::ResourceType {
|
||||
fn from(value: ResourceType) -> Self {
|
||||
return value as bindings::ResourceType;
|
||||
}
|
||||
}
|
||||
@ -1,265 +0,0 @@
|
||||
#[derive(Default, Debug, Clone, Copy)]
|
||||
pub enum CompositeOperator {
|
||||
Undefined,
|
||||
Alpha,
|
||||
Atop,
|
||||
Blend,
|
||||
Blur,
|
||||
Bumpmap,
|
||||
ChangeMask,
|
||||
Clear,
|
||||
ColorBurn,
|
||||
ColorDodge,
|
||||
Colorize,
|
||||
CopyBlack,
|
||||
CopyBlue,
|
||||
Copy,
|
||||
CopyCyan,
|
||||
CopyGreen,
|
||||
CopyMagenta,
|
||||
CopyAlpha,
|
||||
CopyRed,
|
||||
CopyYellow,
|
||||
Darken,
|
||||
DarkenIntensity,
|
||||
Difference,
|
||||
Displace,
|
||||
Dissolve,
|
||||
Distort,
|
||||
DivideDst,
|
||||
DivideSrc,
|
||||
DstAtop,
|
||||
Dst,
|
||||
DstIn,
|
||||
DstOut,
|
||||
DstOver,
|
||||
Exclusion,
|
||||
HardLight,
|
||||
HardMix,
|
||||
Hue,
|
||||
In,
|
||||
Intensity,
|
||||
Lighten,
|
||||
LightenIntensity,
|
||||
LinearBurn,
|
||||
LinearDodge,
|
||||
LinearLight,
|
||||
Luminize,
|
||||
Mathematics,
|
||||
MinusDst,
|
||||
MinusSrc,
|
||||
Modulate,
|
||||
ModulusAdd,
|
||||
ModulusSubtract,
|
||||
Multiply,
|
||||
No,
|
||||
Out,
|
||||
#[default]
|
||||
Over,
|
||||
Overlay,
|
||||
PegtopLight,
|
||||
PinLight,
|
||||
Plus,
|
||||
Replace,
|
||||
Saturate,
|
||||
Screen,
|
||||
SoftLight,
|
||||
SrcAtop,
|
||||
Src,
|
||||
SrcIn,
|
||||
SrcOut,
|
||||
SrcOver,
|
||||
Threshold,
|
||||
VividLight,
|
||||
Xor,
|
||||
Stereo,
|
||||
Freeze,
|
||||
Interpolate,
|
||||
Negate,
|
||||
Reflect,
|
||||
SoftBurn,
|
||||
SoftDodge,
|
||||
Stamp,
|
||||
RMSE,
|
||||
SaliencyBlend,
|
||||
SeamlessBlend,
|
||||
}
|
||||
|
||||
impl From<CompositeOperator> for crate::bindings::CompositeOperator {
|
||||
fn from(value: CompositeOperator) -> Self {
|
||||
match value {
|
||||
CompositeOperator::Undefined => crate::bindings::CompositeOperator_UndefinedCompositeOp,
|
||||
CompositeOperator::Alpha => crate::bindings::CompositeOperator_AlphaCompositeOp,
|
||||
CompositeOperator::Atop => crate::bindings::CompositeOperator_AtopCompositeOp,
|
||||
CompositeOperator::Blend => crate::bindings::CompositeOperator_BlendCompositeOp,
|
||||
CompositeOperator::Blur => crate::bindings::CompositeOperator_BlurCompositeOp,
|
||||
CompositeOperator::Bumpmap => crate::bindings::CompositeOperator_BumpmapCompositeOp,
|
||||
CompositeOperator::ChangeMask => crate::bindings::CompositeOperator_ChangeMaskCompositeOp,
|
||||
CompositeOperator::Clear => crate::bindings::CompositeOperator_ClearCompositeOp,
|
||||
CompositeOperator::ColorBurn => crate::bindings::CompositeOperator_ColorBurnCompositeOp,
|
||||
CompositeOperator::ColorDodge => crate::bindings::CompositeOperator_ColorDodgeCompositeOp,
|
||||
CompositeOperator::Colorize => crate::bindings::CompositeOperator_ColorizeCompositeOp,
|
||||
CompositeOperator::CopyBlack => crate::bindings::CompositeOperator_CopyBlackCompositeOp,
|
||||
CompositeOperator::CopyBlue => crate::bindings::CompositeOperator_CopyBlueCompositeOp,
|
||||
CompositeOperator::Copy => crate::bindings::CompositeOperator_CopyCompositeOp,
|
||||
CompositeOperator::CopyCyan => crate::bindings::CompositeOperator_CopyCyanCompositeOp,
|
||||
CompositeOperator::CopyGreen => crate::bindings::CompositeOperator_CopyGreenCompositeOp,
|
||||
CompositeOperator::CopyMagenta => crate::bindings::CompositeOperator_CopyMagentaCompositeOp,
|
||||
CompositeOperator::CopyAlpha => crate::bindings::CompositeOperator_CopyAlphaCompositeOp,
|
||||
CompositeOperator::CopyRed => crate::bindings::CompositeOperator_CopyRedCompositeOp,
|
||||
CompositeOperator::CopyYellow => crate::bindings::CompositeOperator_CopyYellowCompositeOp,
|
||||
CompositeOperator::Darken => crate::bindings::CompositeOperator_DarkenCompositeOp,
|
||||
CompositeOperator::DarkenIntensity => crate::bindings::CompositeOperator_DarkenIntensityCompositeOp,
|
||||
CompositeOperator::Difference => crate::bindings::CompositeOperator_DifferenceCompositeOp,
|
||||
CompositeOperator::Displace => crate::bindings::CompositeOperator_DisplaceCompositeOp,
|
||||
CompositeOperator::Dissolve => crate::bindings::CompositeOperator_DissolveCompositeOp,
|
||||
CompositeOperator::Distort => crate::bindings::CompositeOperator_DistortCompositeOp,
|
||||
CompositeOperator::DivideDst => crate::bindings::CompositeOperator_DivideDstCompositeOp,
|
||||
CompositeOperator::DivideSrc => crate::bindings::CompositeOperator_DivideSrcCompositeOp,
|
||||
CompositeOperator::DstAtop => crate::bindings::CompositeOperator_DstAtopCompositeOp,
|
||||
CompositeOperator::Dst => crate::bindings::CompositeOperator_DstCompositeOp,
|
||||
CompositeOperator::DstIn => crate::bindings::CompositeOperator_DstInCompositeOp,
|
||||
CompositeOperator::DstOut => crate::bindings::CompositeOperator_DstOutCompositeOp,
|
||||
CompositeOperator::DstOver => crate::bindings::CompositeOperator_DstOverCompositeOp,
|
||||
CompositeOperator::Exclusion => crate::bindings::CompositeOperator_ExclusionCompositeOp,
|
||||
CompositeOperator::HardLight => crate::bindings::CompositeOperator_HardLightCompositeOp,
|
||||
CompositeOperator::HardMix => crate::bindings::CompositeOperator_HardMixCompositeOp,
|
||||
CompositeOperator::Hue => crate::bindings::CompositeOperator_HueCompositeOp,
|
||||
CompositeOperator::In => crate::bindings::CompositeOperator_InCompositeOp,
|
||||
CompositeOperator::Intensity => crate::bindings::CompositeOperator_IntensityCompositeOp,
|
||||
CompositeOperator::Lighten => crate::bindings::CompositeOperator_LightenCompositeOp,
|
||||
CompositeOperator::LightenIntensity => crate::bindings::CompositeOperator_LightenIntensityCompositeOp,
|
||||
CompositeOperator::LinearBurn => crate::bindings::CompositeOperator_LinearBurnCompositeOp,
|
||||
CompositeOperator::LinearDodge => crate::bindings::CompositeOperator_LinearDodgeCompositeOp,
|
||||
CompositeOperator::LinearLight => crate::bindings::CompositeOperator_LinearLightCompositeOp,
|
||||
CompositeOperator::Luminize => crate::bindings::CompositeOperator_LuminizeCompositeOp,
|
||||
CompositeOperator::Mathematics => crate::bindings::CompositeOperator_MathematicsCompositeOp,
|
||||
CompositeOperator::MinusDst => crate::bindings::CompositeOperator_MinusDstCompositeOp,
|
||||
CompositeOperator::MinusSrc => crate::bindings::CompositeOperator_MinusSrcCompositeOp,
|
||||
CompositeOperator::Modulate => crate::bindings::CompositeOperator_ModulateCompositeOp,
|
||||
CompositeOperator::ModulusAdd => crate::bindings::CompositeOperator_ModulusAddCompositeOp,
|
||||
CompositeOperator::ModulusSubtract => crate::bindings::CompositeOperator_ModulusSubtractCompositeOp,
|
||||
CompositeOperator::Multiply => crate::bindings::CompositeOperator_MultiplyCompositeOp,
|
||||
CompositeOperator::No => crate::bindings::CompositeOperator_NoCompositeOp,
|
||||
CompositeOperator::Out => crate::bindings::CompositeOperator_OutCompositeOp,
|
||||
CompositeOperator::Over => crate::bindings::CompositeOperator_OverCompositeOp,
|
||||
CompositeOperator::Overlay => crate::bindings::CompositeOperator_OverlayCompositeOp,
|
||||
CompositeOperator::PegtopLight => crate::bindings::CompositeOperator_PegtopLightCompositeOp,
|
||||
CompositeOperator::PinLight => crate::bindings::CompositeOperator_PinLightCompositeOp,
|
||||
CompositeOperator::Plus => crate::bindings::CompositeOperator_PlusCompositeOp,
|
||||
CompositeOperator::Replace => crate::bindings::CompositeOperator_ReplaceCompositeOp,
|
||||
CompositeOperator::Saturate => crate::bindings::CompositeOperator_SaturateCompositeOp,
|
||||
CompositeOperator::Screen => crate::bindings::CompositeOperator_ScreenCompositeOp,
|
||||
CompositeOperator::SoftLight => crate::bindings::CompositeOperator_SoftLightCompositeOp,
|
||||
CompositeOperator::SrcAtop => crate::bindings::CompositeOperator_SrcAtopCompositeOp,
|
||||
CompositeOperator::Src => crate::bindings::CompositeOperator_SrcCompositeOp,
|
||||
CompositeOperator::SrcIn => crate::bindings::CompositeOperator_SrcInCompositeOp,
|
||||
CompositeOperator::SrcOut => crate::bindings::CompositeOperator_SrcOutCompositeOp,
|
||||
CompositeOperator::SrcOver => crate::bindings::CompositeOperator_SrcOverCompositeOp,
|
||||
CompositeOperator::Threshold => crate::bindings::CompositeOperator_ThresholdCompositeOp,
|
||||
CompositeOperator::VividLight => crate::bindings::CompositeOperator_VividLightCompositeOp,
|
||||
CompositeOperator::Xor => crate::bindings::CompositeOperator_XorCompositeOp,
|
||||
CompositeOperator::Stereo => crate::bindings::CompositeOperator_StereoCompositeOp,
|
||||
CompositeOperator::Freeze => crate::bindings::CompositeOperator_FreezeCompositeOp,
|
||||
CompositeOperator::Interpolate => crate::bindings::CompositeOperator_InterpolateCompositeOp,
|
||||
CompositeOperator::Negate => crate::bindings::CompositeOperator_NegateCompositeOp,
|
||||
CompositeOperator::Reflect => crate::bindings::CompositeOperator_ReflectCompositeOp,
|
||||
CompositeOperator::SoftBurn => crate::bindings::CompositeOperator_SoftBurnCompositeOp,
|
||||
CompositeOperator::SoftDodge => crate::bindings::CompositeOperator_SoftDodgeCompositeOp,
|
||||
CompositeOperator::Stamp => crate::bindings::CompositeOperator_StampCompositeOp,
|
||||
CompositeOperator::RMSE => crate::bindings::CompositeOperator_RMSECompositeOp,
|
||||
CompositeOperator::SaliencyBlend => crate::bindings::CompositeOperator_SaliencyBlendCompositeOp,
|
||||
CompositeOperator::SeamlessBlend => crate::bindings::CompositeOperator_SeamlessBlendCompositeOp,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl From<crate::bindings::CompositeOperator> for CompositeOperator {
|
||||
fn from(value: crate::bindings::CompositeOperator) -> Self {
|
||||
match value {
|
||||
crate::bindings::CompositeOperator_UndefinedCompositeOp => CompositeOperator::Undefined,
|
||||
crate::bindings::CompositeOperator_AlphaCompositeOp => CompositeOperator::Alpha,
|
||||
crate::bindings::CompositeOperator_AtopCompositeOp => CompositeOperator::Atop,
|
||||
crate::bindings::CompositeOperator_BlendCompositeOp => CompositeOperator::Blend,
|
||||
crate::bindings::CompositeOperator_BlurCompositeOp => CompositeOperator::Blur,
|
||||
crate::bindings::CompositeOperator_BumpmapCompositeOp => CompositeOperator::Bumpmap,
|
||||
crate::bindings::CompositeOperator_ChangeMaskCompositeOp => CompositeOperator::ChangeMask,
|
||||
crate::bindings::CompositeOperator_ClearCompositeOp => CompositeOperator::Clear,
|
||||
crate::bindings::CompositeOperator_ColorBurnCompositeOp => CompositeOperator::ColorBurn,
|
||||
crate::bindings::CompositeOperator_ColorDodgeCompositeOp => CompositeOperator::ColorDodge,
|
||||
crate::bindings::CompositeOperator_ColorizeCompositeOp => CompositeOperator::Colorize,
|
||||
crate::bindings::CompositeOperator_CopyBlackCompositeOp => CompositeOperator::CopyBlack,
|
||||
crate::bindings::CompositeOperator_CopyBlueCompositeOp => CompositeOperator::CopyBlue,
|
||||
crate::bindings::CompositeOperator_CopyCompositeOp => CompositeOperator::Copy,
|
||||
crate::bindings::CompositeOperator_CopyCyanCompositeOp => CompositeOperator::CopyCyan,
|
||||
crate::bindings::CompositeOperator_CopyGreenCompositeOp => CompositeOperator::CopyGreen,
|
||||
crate::bindings::CompositeOperator_CopyMagentaCompositeOp => CompositeOperator::CopyMagenta,
|
||||
crate::bindings::CompositeOperator_CopyAlphaCompositeOp => CompositeOperator::CopyAlpha,
|
||||
crate::bindings::CompositeOperator_CopyRedCompositeOp => CompositeOperator::CopyRed,
|
||||
crate::bindings::CompositeOperator_CopyYellowCompositeOp => CompositeOperator::CopyYellow,
|
||||
crate::bindings::CompositeOperator_DarkenCompositeOp => CompositeOperator::Darken,
|
||||
crate::bindings::CompositeOperator_DarkenIntensityCompositeOp => CompositeOperator::DarkenIntensity,
|
||||
crate::bindings::CompositeOperator_DifferenceCompositeOp => CompositeOperator::Difference,
|
||||
crate::bindings::CompositeOperator_DisplaceCompositeOp => CompositeOperator::Displace,
|
||||
crate::bindings::CompositeOperator_DissolveCompositeOp => CompositeOperator::Dissolve,
|
||||
crate::bindings::CompositeOperator_DistortCompositeOp => CompositeOperator::Distort,
|
||||
crate::bindings::CompositeOperator_DivideDstCompositeOp => CompositeOperator::DivideDst,
|
||||
crate::bindings::CompositeOperator_DivideSrcCompositeOp => CompositeOperator::DivideSrc,
|
||||
crate::bindings::CompositeOperator_DstAtopCompositeOp => CompositeOperator::DstAtop,
|
||||
crate::bindings::CompositeOperator_DstCompositeOp => CompositeOperator::Dst,
|
||||
crate::bindings::CompositeOperator_DstInCompositeOp => CompositeOperator::DstIn,
|
||||
crate::bindings::CompositeOperator_DstOutCompositeOp => CompositeOperator::DstOut,
|
||||
crate::bindings::CompositeOperator_DstOverCompositeOp => CompositeOperator::DstOver,
|
||||
crate::bindings::CompositeOperator_ExclusionCompositeOp => CompositeOperator::Exclusion,
|
||||
crate::bindings::CompositeOperator_HardLightCompositeOp => CompositeOperator::HardLight,
|
||||
crate::bindings::CompositeOperator_HardMixCompositeOp => CompositeOperator::HardMix,
|
||||
crate::bindings::CompositeOperator_HueCompositeOp => CompositeOperator::Hue,
|
||||
crate::bindings::CompositeOperator_InCompositeOp => CompositeOperator::In,
|
||||
crate::bindings::CompositeOperator_IntensityCompositeOp => CompositeOperator::Intensity,
|
||||
crate::bindings::CompositeOperator_LightenCompositeOp => CompositeOperator::Lighten,
|
||||
crate::bindings::CompositeOperator_LightenIntensityCompositeOp => CompositeOperator::LightenIntensity,
|
||||
crate::bindings::CompositeOperator_LinearBurnCompositeOp => CompositeOperator::LinearBurn,
|
||||
crate::bindings::CompositeOperator_LinearDodgeCompositeOp => CompositeOperator::LinearDodge,
|
||||
crate::bindings::CompositeOperator_LinearLightCompositeOp => CompositeOperator::LinearLight,
|
||||
crate::bindings::CompositeOperator_LuminizeCompositeOp => CompositeOperator::Luminize,
|
||||
crate::bindings::CompositeOperator_MathematicsCompositeOp => CompositeOperator::Mathematics,
|
||||
crate::bindings::CompositeOperator_MinusDstCompositeOp => CompositeOperator::MinusDst,
|
||||
crate::bindings::CompositeOperator_MinusSrcCompositeOp => CompositeOperator::MinusSrc,
|
||||
crate::bindings::CompositeOperator_ModulateCompositeOp => CompositeOperator::Modulate,
|
||||
crate::bindings::CompositeOperator_ModulusAddCompositeOp => CompositeOperator::ModulusAdd,
|
||||
crate::bindings::CompositeOperator_ModulusSubtractCompositeOp => CompositeOperator::ModulusSubtract,
|
||||
crate::bindings::CompositeOperator_MultiplyCompositeOp => CompositeOperator::Multiply,
|
||||
crate::bindings::CompositeOperator_NoCompositeOp => CompositeOperator::No,
|
||||
crate::bindings::CompositeOperator_OutCompositeOp => CompositeOperator::Out,
|
||||
crate::bindings::CompositeOperator_OverCompositeOp => CompositeOperator::Over,
|
||||
crate::bindings::CompositeOperator_OverlayCompositeOp => CompositeOperator::Overlay,
|
||||
crate::bindings::CompositeOperator_PegtopLightCompositeOp => CompositeOperator::PegtopLight,
|
||||
crate::bindings::CompositeOperator_PinLightCompositeOp => CompositeOperator::PinLight,
|
||||
crate::bindings::CompositeOperator_PlusCompositeOp => CompositeOperator::Plus,
|
||||
crate::bindings::CompositeOperator_ReplaceCompositeOp => CompositeOperator::Replace,
|
||||
crate::bindings::CompositeOperator_SaturateCompositeOp => CompositeOperator::Saturate,
|
||||
crate::bindings::CompositeOperator_ScreenCompositeOp => CompositeOperator::Screen,
|
||||
crate::bindings::CompositeOperator_SoftLightCompositeOp => CompositeOperator::SoftLight,
|
||||
crate::bindings::CompositeOperator_SrcAtopCompositeOp => CompositeOperator::SrcAtop,
|
||||
crate::bindings::CompositeOperator_SrcCompositeOp => CompositeOperator::Src,
|
||||
crate::bindings::CompositeOperator_SrcInCompositeOp => CompositeOperator::SrcIn,
|
||||
crate::bindings::CompositeOperator_SrcOutCompositeOp => CompositeOperator::SrcOut,
|
||||
crate::bindings::CompositeOperator_SrcOverCompositeOp => CompositeOperator::SrcOver,
|
||||
crate::bindings::CompositeOperator_ThresholdCompositeOp => CompositeOperator::Threshold,
|
||||
crate::bindings::CompositeOperator_VividLightCompositeOp => CompositeOperator::VividLight,
|
||||
crate::bindings::CompositeOperator_XorCompositeOp => CompositeOperator::Xor,
|
||||
crate::bindings::CompositeOperator_StereoCompositeOp => CompositeOperator::Stereo,
|
||||
crate::bindings::CompositeOperator_FreezeCompositeOp => CompositeOperator::Freeze,
|
||||
crate::bindings::CompositeOperator_InterpolateCompositeOp => CompositeOperator::Interpolate,
|
||||
crate::bindings::CompositeOperator_NegateCompositeOp => CompositeOperator::Negate,
|
||||
crate::bindings::CompositeOperator_ReflectCompositeOp => CompositeOperator::Reflect,
|
||||
crate::bindings::CompositeOperator_SoftBurnCompositeOp => CompositeOperator::SoftBurn,
|
||||
crate::bindings::CompositeOperator_SoftDodgeCompositeOp => CompositeOperator::SoftDodge,
|
||||
crate::bindings::CompositeOperator_StampCompositeOp => CompositeOperator::Stamp,
|
||||
crate::bindings::CompositeOperator_RMSECompositeOp => CompositeOperator::RMSE,
|
||||
crate::bindings::CompositeOperator_SaliencyBlendCompositeOp => CompositeOperator::SaliencyBlend,
|
||||
crate::bindings::CompositeOperator_SeamlessBlendCompositeOp => CompositeOperator::SeamlessBlend,
|
||||
_ => CompositeOperator::default(),
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -28,7 +28,8 @@ use {size_t, ssize_t};
|
||||
|
||||
use crate::result::Result;
|
||||
|
||||
use super::{CompositeOperator, DrawingWand, PixelWand};
|
||||
use super::{DrawingWand, PixelWand};
|
||||
use crate::{CompositeOperator, ResourceType};
|
||||
|
||||
wand_common!(
|
||||
MagickWand,
|
||||
@ -42,23 +43,6 @@ wand_common!(
|
||||
MagickGetException
|
||||
);
|
||||
|
||||
/// Resource type to use with [set_resource_limit](MagickWand::set_resource_limit)
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
pub enum ResourceType {
|
||||
Undefined = bindings::ResourceType_UndefinedResource as isize,
|
||||
Area = bindings::ResourceType_AreaResource as isize,
|
||||
Disk = bindings::ResourceType_DiskResource as isize,
|
||||
File = bindings::ResourceType_FileResource as isize,
|
||||
Height = bindings::ResourceType_HeightResource as isize,
|
||||
Map = bindings::ResourceType_MapResource as isize,
|
||||
Memory = bindings::ResourceType_MemoryResource as isize,
|
||||
Thread = bindings::ResourceType_ThreadResource as isize,
|
||||
Throttle = bindings::ResourceType_ThrottleResource as isize,
|
||||
Time = bindings::ResourceType_TimeResource as isize,
|
||||
Width = bindings::ResourceType_WidthResource as isize,
|
||||
ListLength = bindings::ResourceType_ListLengthResource as isize,
|
||||
}
|
||||
|
||||
/// MagickWand is a Rustic wrapper to the Rust bindings to ImageMagick.
|
||||
///
|
||||
/// Instantiating a `MagickWand` will construct an ImageMagick "wand"
|
||||
@ -78,7 +62,7 @@ impl MagickWand {
|
||||
pub fn set_resource_limit(resource: ResourceType, limit: u64) -> Result<()> {
|
||||
let result = unsafe {
|
||||
bindings::SetMagickResourceLimit(
|
||||
resource as bindings::ResourceType,
|
||||
resource.into(),
|
||||
limit as bindings::MagickSizeType,
|
||||
)
|
||||
};
|
||||
|
||||
@ -15,12 +15,10 @@
|
||||
*/
|
||||
#[macro_use]
|
||||
mod macros;
|
||||
mod composite_operator;
|
||||
mod drawing;
|
||||
mod magick;
|
||||
mod pixel;
|
||||
|
||||
pub use self::composite_operator::CompositeOperator;
|
||||
pub use self::drawing::DrawingWand;
|
||||
pub use self::magick::{MagickWand, ResourceType};
|
||||
pub use self::magick::MagickWand;
|
||||
pub use self::pixel::{PixelWand, HSL};
|
||||
|
||||
Reference in New Issue
Block a user