1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
use prototty_render::*; #[cfg_attr(feature = "serialize", derive(Serialize, Deserialize))] #[derive(Debug, Clone, Copy)] pub struct TransformRgb24View<V> { pub view: V, } impl<V> TransformRgb24View<V> { pub fn new(view: V) -> Self { Self { view } } } #[cfg_attr(feature = "serialize", derive(Serialize, Deserialize))] #[derive(Debug, Clone, Copy)] pub struct TransformRgb24Data<S, T> { pub transform_rgb24: S, pub data: T, } impl<'a, T, V: View<&'a T>, S: ViewTransformRgb24> View<&'a TransformRgb24Data<S, T>> for TransformRgb24View<V> { fn view<G: ViewGrid, R: ViewTransformRgb24>( &mut self, &TransformRgb24Data { transform_rgb24, ref data, }: &'a TransformRgb24Data<S, T>, context: ViewContext<R>, grid: &mut G, ) { self.view( TransformRgb24Data { transform_rgb24, data, }, context, grid, ) } fn visible_bounds<R: ViewTransformRgb24>( &mut self, &TransformRgb24Data { transform_rgb24, ref data, }: &'a TransformRgb24Data<S, T>, context: ViewContext<R>, ) -> Size { self.visible_bounds( TransformRgb24Data { transform_rgb24, data, }, context, ) } } impl<T, V: View<T>, S: ViewTransformRgb24> View<TransformRgb24Data<S, T>> for TransformRgb24View<V> { fn view<G: ViewGrid, R: ViewTransformRgb24>( &mut self, TransformRgb24Data { transform_rgb24, data, }: TransformRgb24Data<S, T>, context: ViewContext<R>, grid: &mut G, ) { self.view .view(data, context.compose_transform_rgb24(transform_rgb24), grid); } fn visible_bounds<R: ViewTransformRgb24>( &mut self, TransformRgb24Data { transform_rgb24: _, data, }: TransformRgb24Data<S, T>, context: ViewContext<R>, ) -> Size { self.view.visible_bounds(data, context) } }