(
&self,
udid: &str,
button_name: &str,
pressed: bool,
)
| 458 | } |
| 459 | |
| 460 | pub fn chrome_button_png( |
| 461 | &self, |
| 462 | udid: &str, |
| 463 | button_name: &str, |
| 464 | pressed: bool, |
| 465 | ) -> Result<Vec<u8>, AppError> { |
| 466 | let udid = CString::new(udid).map_err(|e| AppError::bad_request(e.to_string()))?; |
| 467 | let button_name = |
| 468 | CString::new(button_name).map_err(|e| AppError::bad_request(e.to_string()))?; |
| 469 | unsafe { |
| 470 | let mut error = ptr::null_mut(); |
| 471 | let bytes = ffi::xcw_native_render_chrome_button_png( |
| 472 | udid.as_ptr(), |
| 473 | button_name.as_ptr(), |
| 474 | pressed, |
| 475 | &mut error, |
| 476 | ); |
| 477 | if bytes.data.is_null() { |
| 478 | return Err( |
| 479 | take_error(error).unwrap_or_else(|| AppError::native("Unknown native error.")) |
| 480 | ); |
| 481 | } |
| 482 | let data = std::slice::from_raw_parts(bytes.data, bytes.length).to_vec(); |
| 483 | ffi::xcw_native_free_bytes(bytes); |
| 484 | Ok(data) |
| 485 | } |
| 486 | } |
| 487 | |
| 488 | pub fn screen_mask_png(&self, udid: &str) -> Result<Vec<u8>, AppError> { |
| 489 | let udid = CString::new(udid).map_err(|e| AppError::bad_request(e.to_string()))?; |
no test coverage detected