use cocoa::base::{id, BOOL};
use cocoa::foundation::NSUInteger;
use objc::*;
use crate::scanner_functional_units::ICScannerPixelDataType;
pub trait ICScannerBandData: Sized {
unsafe fn fullImageWidth(self) -> NSUInteger;
unsafe fn fullImageHeight(self) -> NSUInteger;
unsafe fn bitsPerPixel(self) -> NSUInteger;
unsafe fn bitsPerComponent(self) -> NSUInteger;
unsafe fn numComponents(self) -> NSUInteger;
unsafe fn isBigEndian(self) -> BOOL;
unsafe fn pixelDataType(self) -> ICScannerPixelDataType;
unsafe fn colorSyncProfilePath(self) -> id;
unsafe fn bytesPerRow(self) -> NSUInteger;
unsafe fn dataStartRow(self) -> NSUInteger;
unsafe fn dataNumRows(self) -> NSUInteger;
unsafe fn dataSize(self) -> NSUInteger;
unsafe fn dataBuffer(self) -> id;
}
impl ICScannerBandData for id {
unsafe fn fullImageWidth(self) -> NSUInteger {
msg_send![self, fullImageWidth]
}
unsafe fn fullImageHeight(self) -> NSUInteger {
msg_send![self, fullImageHeight]
}
unsafe fn bitsPerPixel(self) -> NSUInteger {
msg_send![self, bitsPerPixel]
}
unsafe fn bitsPerComponent(self) -> NSUInteger {
msg_send![self, bitsPerComponent]
}
unsafe fn numComponents(self) -> NSUInteger {
msg_send![self, numComponents]
}
unsafe fn isBigEndian(self) -> BOOL {
msg_send![self, isBigEndian]
}
unsafe fn pixelDataType(self) -> ICScannerPixelDataType {
msg_send![self, pixelDataType]
}
unsafe fn colorSyncProfilePath(self) -> id {
msg_send![self, colorSyncProfilePath]
}
unsafe fn bytesPerRow(self) -> NSUInteger {
msg_send![self, bytesPerRow]
}
unsafe fn dataStartRow(self) -> NSUInteger {
msg_send![self, dataStartRow]
}
unsafe fn dataNumRows(self) -> NSUInteger {
msg_send![self, dataNumRows]
}
unsafe fn dataSize(self) -> NSUInteger {
msg_send![self, dataSize]
}
unsafe fn dataBuffer(self) -> id {
msg_send![self, dataBuffer]
}
}