pub trait DataSource: Send + Sync {
Show 13 methods
// Required methods
fn metadata(&self) -> &DatasetMetadata;
fn read_slice(&self, request: &SliceRequest) -> Result<Slice2D>;
// Provided methods
fn is_remote(&self) -> bool { ... }
fn source_identity(&self) -> Option<&str> { ... }
fn remote_capabilities(&self) -> Option<AccessCapabilities> { ... }
fn read_slice_on_axes(
&self,
request: &SliceRequest,
_row_axis: Option<&str>,
_col_axis: Option<&str>,
_fixed_axes: &[(String, usize)],
) -> Result<Slice2D> { ... }
fn read_slice_on_axes_cancellable(
&self,
request: &SliceRequest,
row_axis: Option<&str>,
col_axis: Option<&str>,
fixed_axes: &[(String, usize)],
_cancelled: Arc<AtomicBool>,
) -> Result<Slice2D> { ... }
fn time_label(&self, _index: usize) -> Option<String> { ... }
fn time_label_for_variable(
&self,
_variable: &str,
index: usize,
) -> Option<String> { ... }
fn vertical_label(&self, _variable: &str, _index: usize) -> Option<String> { ... }
fn vertical_labels(&self, variable: &str) -> Vec<String> { ... }
fn dimension_values(
&self,
_variable: &str,
_dimension: &str,
) -> Option<Vec<f64>> { ... }
fn point_coordinates(
&self,
_variable: &str,
_row: usize,
_col: usize,
) -> PointCoordinates { ... }
}Required Methods§
fn metadata(&self) -> &DatasetMetadata
fn read_slice(&self, request: &SliceRequest) -> Result<Slice2D>
Provided Methods§
fn is_remote(&self) -> bool
Sourcefn source_identity(&self) -> Option<&str>
fn source_identity(&self) -> Option<&str>
Stable source-version token for remote collection diagnostics and cache identity.
fn remote_capabilities(&self) -> Option<AccessCapabilities>
fn read_slice_on_axes( &self, request: &SliceRequest, _row_axis: Option<&str>, _col_axis: Option<&str>, _fixed_axes: &[(String, usize)], ) -> Result<Slice2D>
Sourcefn read_slice_on_axes_cancellable(
&self,
request: &SliceRequest,
row_axis: Option<&str>,
col_axis: Option<&str>,
fixed_axes: &[(String, usize)],
_cancelled: Arc<AtomicBool>,
) -> Result<Slice2D>
fn read_slice_on_axes_cancellable( &self, request: &SliceRequest, row_axis: Option<&str>, col_axis: Option<&str>, fixed_axes: &[(String, usize)], _cancelled: Arc<AtomicBool>, ) -> Result<Slice2D>
Variant used by interactive workers that may supersede an in-flight provider operation. Format adapters that can propagate cancellation override this; local sources retain the ordinary synchronous behavior.
fn time_label(&self, _index: usize) -> Option<String>
fn time_label_for_variable( &self, _variable: &str, index: usize, ) -> Option<String>
fn vertical_label(&self, _variable: &str, _index: usize) -> Option<String>
Sourcefn vertical_labels(&self, variable: &str) -> Vec<String>
fn vertical_labels(&self, variable: &str) -> Vec<String>
Labels for every index of the variable’s vertical (Depth) axis, in index order. Empty when the variable has no vertical axis. The sidebar level list renders this, so it is read once per variable change rather than per frame.
fn dimension_values( &self, _variable: &str, _dimension: &str, ) -> Option<Vec<f64>>
fn point_coordinates( &self, _variable: &str, _row: usize, _col: usize, ) -> PointCoordinates
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".