• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

geo-engine / geoengine / 19149706375

06 Nov 2025 09:00PM UTC coverage: 88.827%. First build
19149706375

Pull #1083

github

web-flow
Merge 56a3fb62c into 113de40ca
Pull Request #1083: feat: new gdal source workflow optimization

6168 of 7008 new or added lines in 71 files covered. (88.01%)

116144 of 130753 relevant lines covered (88.83%)

496529.85 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

75.0
/operators/src/engine/clonable_operator.rs
1
use super::{
2
    InitializedPlotOperator, InitializedRasterOperator, InitializedVectorOperator, PlotOperator,
3
    RasterOperator, VectorOperator,
4
};
5

6
/// Helper trait for making boxed `RasterOperator`s cloneable
7
pub trait CloneableRasterOperator {
8
    fn clone_boxed_raster(&self) -> Box<dyn RasterOperator>;
9
}
10

11
/// Helper trait for making boxed `VectorOperator`s cloneable
12
pub trait CloneableVectorOperator {
13
    fn clone_boxed_vector(&self) -> Box<dyn VectorOperator>;
14
}
15

16
/// Helper trait for making boxed `PlotOperator`s cloneable
17
pub trait CloneablePlotOperator {
18
    fn clone_boxed_plot(&self) -> Box<dyn PlotOperator>;
19
}
20

21
impl<T> CloneableRasterOperator for T
22
where
23
    T: 'static + RasterOperator + Clone,
24
{
25
    fn clone_boxed_raster(&self) -> Box<dyn RasterOperator> {
133✔
26
        Box::new(self.clone())
133✔
27
    }
133✔
28
}
29

30
impl<T> CloneableVectorOperator for T
31
where
32
    T: 'static + VectorOperator + Clone,
33
{
34
    fn clone_boxed_vector(&self) -> Box<dyn VectorOperator> {
53✔
35
        Box::new(self.clone())
53✔
36
    }
53✔
37
}
38

39
impl<T> CloneablePlotOperator for T
40
where
41
    T: 'static + PlotOperator + Clone,
42
{
43
    fn clone_boxed_plot(&self) -> Box<dyn PlotOperator> {
2✔
44
        Box::new(self.clone())
2✔
45
    }
2✔
46
}
47

48
impl Clone for Box<dyn RasterOperator> {
49
    fn clone(&self) -> Box<dyn RasterOperator> {
133✔
50
        self.clone_boxed_raster()
133✔
51
    }
133✔
52
}
53

54
impl Clone for Box<dyn VectorOperator> {
55
    fn clone(&self) -> Box<dyn VectorOperator> {
53✔
56
        self.clone_boxed_vector()
53✔
57
    }
53✔
58
}
59

60
impl Clone for Box<dyn PlotOperator> {
61
    fn clone(&self) -> Box<dyn PlotOperator> {
2✔
62
        self.clone_boxed_plot()
2✔
63
    }
2✔
64
}
65

66
/// Helper trait for making boxed `InitializedRasterOperator`s cloneable
67
pub trait CloneableInitializedRasterOperator {
68
    fn clone_boxed_raster(&self) -> Box<dyn InitializedRasterOperator>;
69
}
70

71
/// Helper trait for making boxed `InitializedVectorOperator`s cloneable
72
pub trait CloneableInitializedVectorOperator {
73
    fn clone_boxed_vector(&self) -> Box<dyn InitializedVectorOperator>;
74
}
75

76
/// Helper trait for making boxed `InitializedPlotOperator`s cloneable
77
pub trait CloneableInitializedPlotOperator {
78
    fn clone_boxed_plot(&self) -> Box<dyn InitializedPlotOperator>;
79
}
80

81
impl<T> CloneableInitializedRasterOperator for T
82
where
83
    T: 'static + InitializedRasterOperator + Clone,
84
{
NEW
85
    fn clone_boxed_raster(&self) -> Box<dyn InitializedRasterOperator> {
×
NEW
86
        Box::new(self.clone())
×
NEW
87
    }
×
88
}
89

90
impl Clone for Box<dyn InitializedRasterOperator> {
NEW
91
    fn clone(&self) -> Box<dyn InitializedRasterOperator> {
×
NEW
92
        self.clone_boxed_raster()
×
NEW
93
    }
×
94
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc