skia_safe/core/
cpu_recorder.rs1pub mod cpu {
2 use std::fmt;
3
4 use crate::{prelude::*, recorder, Recorder as _};
5 use skia_bindings::{self as sb, skcpu_Recorder};
6
7 #[repr(transparent)]
8 pub struct Recorder<'a>(&'a mut skcpu_Recorder);
9 require_base_type!(skcpu_Recorder, sb::SkRecorder);
10
11 impl NativeAccess for Recorder<'_> {
12 type Native = skcpu_Recorder;
13
14 fn native(&self) -> &Self::Native {
15 self.0
16 }
17
18 fn native_mut(&mut self) -> &mut Self::Native {
19 self.0
20 }
21 }
22
23 impl fmt::Debug for Recorder<'_> {
24 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
25 f.debug_struct("Recorder").field("ty", &self.ty()).finish()
26 }
27 }
28
29 impl Drop for Recorder<'_> {
30 fn drop(&mut self) {
31 unsafe {
32 sb::C_SkRecorder_delete(&mut self.native_mut()._base);
33 }
34 }
35 }
36
37 impl<'a> Recorder<'a> {
38 #[allow(unused)]
39 pub(crate) fn from_owned(recorder: &'a mut skcpu_Recorder) -> Self {
40 Self(recorder)
41 }
42
43 }
45
46 impl recorder::Recorder for Recorder<'_> {
47 fn ty(&self) -> crate::recorder::Type {
48 recorder::Type::CPU
49 }
50 }
51
52 impl recorder::sealed::AsRecorderRef for Recorder<'_> {
53 fn as_recorder_ref(&mut self) -> &mut recorder::RecorderRef {
54 recorder::RecorderRef::from_ref_mut(&mut self.native_mut()._base)
55 }
56 }
57}