Make set_get! macro usable with types module
This commit is contained in:
@ -110,10 +110,10 @@ macro_rules! set_get {
|
||||
($($get:ident, $set:ident, $c_get:ident, $c_set:ident, $typ:ty )*) => {
|
||||
$(
|
||||
pub fn $get(&self) -> $typ {
|
||||
unsafe { ::bindings::$c_get(self.wand) }
|
||||
unsafe { ::bindings::$c_get(self.wand).into() }
|
||||
}
|
||||
pub fn $set(&mut self, v: $typ) -> Result<()> {
|
||||
match unsafe { ::bindings::$c_set(self.wand, v) } {
|
||||
match unsafe { ::bindings::$c_set(self.wand, v.into()) } {
|
||||
::bindings::MagickBooleanType_MagickTrue => Ok(()),
|
||||
_ => Err(MagickError(concat!(stringify!($set), " returned false")))
|
||||
}
|
||||
|
||||
@ -224,19 +224,6 @@ impl MagickWand {
|
||||
(distortion, wand)
|
||||
}
|
||||
|
||||
pub fn get_image_compose(&self) -> CompositeOperator {
|
||||
unsafe { bindings::MagickGetImageCompose(self.wand).into() }
|
||||
}
|
||||
|
||||
pub fn set_image_compose(&self, composite_operator: CompositeOperator) -> Result<()> {
|
||||
match unsafe { bindings::MagickSetImageCompose(self.wand, composite_operator.into()) } {
|
||||
bindings::MagickBooleanType_MagickTrue => Ok(()),
|
||||
_ => Err(MagickError(
|
||||
"Failed to set the image composite operator type",
|
||||
)),
|
||||
}
|
||||
}
|
||||
|
||||
/// Compose another image onto self at (x, y) using composition_operator
|
||||
pub fn compose_images(
|
||||
&self,
|
||||
@ -1143,50 +1130,6 @@ impl MagickWand {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn get_colorspace(&self) -> ColorspaceType {
|
||||
return unsafe { bindings::MagickGetColorspace(self.wand).into() };
|
||||
}
|
||||
|
||||
pub fn set_colorspace(&mut self, colorspace: ColorspaceType) -> Result<()> {
|
||||
match unsafe { bindings::MagickSetColorspace(self.wand, colorspace.into()) } {
|
||||
bindings::MagickBooleanType_MagickTrue => Ok(()),
|
||||
_ => Err(MagickError("failed to set colorspace")),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn get_image_colorspace(&self) -> ColorspaceType {
|
||||
return unsafe { bindings::MagickGetImageColorspace(self.wand).into() };
|
||||
}
|
||||
|
||||
pub fn set_image_colorspace(&self, colorspace: ColorspaceType) -> Result<()> {
|
||||
match unsafe { bindings::MagickSetImageColorspace(self.wand, colorspace.into()) } {
|
||||
bindings::MagickBooleanType_MagickTrue => Ok(()),
|
||||
_ => Err(MagickError("failed to set image colorspace")),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn get_gravity(&self) -> GravityType {
|
||||
return unsafe { bindings::MagickGetGravity(self.wand).into() };
|
||||
}
|
||||
|
||||
pub fn set_gravity(&mut self, gravity: GravityType) -> Result<()> {
|
||||
match unsafe { bindings::MagickSetGravity(self.wand, gravity.into()) } {
|
||||
bindings::MagickBooleanType_MagickTrue => Ok(()),
|
||||
_ => Err(MagickError("failed to set gravity")),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn get_image_gravity(&self) -> GravityType {
|
||||
return unsafe { bindings::MagickGetImageGravity(self.wand).into() };
|
||||
}
|
||||
|
||||
pub fn set_image_gravity(&mut self, gravity: GravityType) -> Result<()> {
|
||||
match unsafe { bindings::MagickSetImageGravity(self.wand, gravity.into()) } {
|
||||
bindings::MagickBooleanType_MagickTrue => Ok(()),
|
||||
_ => Err(MagickError("failed to set image gravity")),
|
||||
}
|
||||
}
|
||||
|
||||
mutations!(
|
||||
/// Sets the image to the specified alpha level.
|
||||
MagickSetImageAlpha => set_image_alpha(alpha: f64)
|
||||
@ -1225,8 +1168,12 @@ impl MagickWand {
|
||||
);
|
||||
|
||||
set_get!(
|
||||
get_colorspace, set_colorspace, MagickGetColorspace, MagickSetColorspace, ColorspaceType
|
||||
get_image_compose, set_image_compose, MagickGetImageCompose, MagickSetImageCompose, CompositeOperator
|
||||
get_compression, set_compression, MagickGetCompression, MagickSetCompression, bindings::CompressionType
|
||||
get_compression_quality, set_compression_quality, MagickGetCompressionQuality, MagickSetCompressionQuality, size_t
|
||||
get_gravity, set_gravity, MagickGetGravity, MagickSetGravity, GravityType
|
||||
get_image_colorspace, set_image_colorspace, MagickGetImageColorspace, MagickSetImageColorspace, ColorspaceType
|
||||
get_image_compression, set_image_compression, MagickGetImageCompression, MagickSetImageCompression, bindings::CompressionType
|
||||
get_image_compression_quality, set_image_compression_quality, MagickGetImageCompressionQuality, MagickSetImageCompressionQuality, size_t
|
||||
get_image_delay, set_image_delay, MagickGetImageDelay, MagickSetImageDelay, size_t
|
||||
@ -1235,6 +1182,7 @@ impl MagickWand {
|
||||
get_image_endian, set_image_endian, MagickGetImageEndian, MagickSetImageEndian, bindings::EndianType
|
||||
get_image_fuzz, set_image_fuzz, MagickGetImageFuzz, MagickSetImageFuzz, f64
|
||||
get_image_gamma, set_image_gamma, MagickGetImageGamma, MagickSetImageGamma, f64
|
||||
get_image_gravity, set_image_gravity, MagickGetImageGravity, MagickSetImageGravity, GravityType
|
||||
get_image_interlace_scheme, set_image_interlace_scheme, MagickGetImageInterlaceScheme, MagickSetImageInterlaceScheme, bindings::InterlaceType
|
||||
get_image_interpolate_method, set_image_interpolate_method, MagickGetImageInterpolateMethod, MagickSetImageInterpolateMethod, bindings::PixelInterpolateMethod
|
||||
get_image_iterations, set_image_iterations, MagickGetImageIterations, MagickSetImageIterations, size_t
|
||||
|
||||
@ -422,7 +422,7 @@ fn test_image_compose() {
|
||||
START.call_once(|| {
|
||||
magick_wand_genesis();
|
||||
});
|
||||
let wand = MagickWand::new();
|
||||
let mut wand = MagickWand::new();
|
||||
wand.new_image(4, 4, &PixelWand::new()).unwrap();
|
||||
|
||||
let operators = [
|
||||
|
||||
Reference in New Issue
Block a user