ohos-display-binding 0.1.0

OpenHarmony's display binding for rust
Documentation
use ohos_display_sys::NativeDisplayManager_CutoutInfo;

#[derive(Clone, Debug)]
pub struct Rect {
    pub left: i32,
    pub top: i32,
    pub width: u32,
    pub height: u32,
}

#[derive(Clone, Debug)]
pub struct WaterfallDisplayAreaRect {
    pub left: Rect,
    pub top: Rect,
    pub right: Rect,
    pub bottom: Rect,
}

#[derive(Clone, Debug)]
pub struct DisplayCutInfo {
    pub bounding_rect_info: i32,
    pub bounding_rect: Rect,
    pub waterfall_display_area_rect: WaterfallDisplayAreaRect,
}

impl From<NativeDisplayManager_CutoutInfo> for DisplayCutInfo {
    fn from(value: NativeDisplayManager_CutoutInfo) -> Self {
        DisplayCutInfo {
            bounding_rect_info: value.boundingRectsLength,
            bounding_rect: Rect {
                left: unsafe { *value.boundingRects }.top,
                top: unsafe { *value.boundingRects }.left,
                width: unsafe { *value.boundingRects }.width,
                height: unsafe { *value.boundingRects }.height,
            },
            waterfall_display_area_rect: WaterfallDisplayAreaRect {
                left: Rect {
                    left: value.waterfallDisplayAreaRects.left.left,
                    top: value.waterfallDisplayAreaRects.left.top,
                    width: value.waterfallDisplayAreaRects.left.width,
                    height: value.waterfallDisplayAreaRects.left.height,
                },
                top: Rect {
                    left: value.waterfallDisplayAreaRects.top.left,
                    top: value.waterfallDisplayAreaRects.top.top,
                    width: value.waterfallDisplayAreaRects.top.width,
                    height: value.waterfallDisplayAreaRects.top.height,
                },
                right: Rect {
                    left: value.waterfallDisplayAreaRects.right.left,
                    top: value.waterfallDisplayAreaRects.right.top,
                    width: value.waterfallDisplayAreaRects.right.width,
                    height: value.waterfallDisplayAreaRects.right.height,
                },
                bottom: Rect {
                    left: value.waterfallDisplayAreaRects.bottom.left,
                    top: value.waterfallDisplayAreaRects.bottom.top,
                    width: value.waterfallDisplayAreaRects.bottom.width,
                    height: value.waterfallDisplayAreaRects.bottom.height,
                },
            },
        }
    }
}