pub trait PropertiesBackend {
type DataFilesAvailability: DataFilesAvailability;
// Provided methods
fn map_if_available<T, U>(
v: <Self::DataFilesAvailability as DataFilesAvailability>::Result<'_, T>,
f: impl FnOnce(T) -> U,
) -> <Self::DataFilesAvailability as DataFilesAvailability>::Result<'_, U> { ... }
fn zip_if_available<'err, T1, T2>(
v1: <Self::DataFilesAvailability as DataFilesAvailability>::Result<'err, T1>,
v2: <Self::DataFilesAvailability as DataFilesAvailability>::Result<'err, T2>,
) -> <Self::DataFilesAvailability as DataFilesAvailability>::Result<'err, (T1, T2)> { ... }
}
Expand description
Common trait for type parameters of SwhGraphProperties
Required Associated Types§
Provided Methods§
Sourcefn map_if_available<T, U>(
v: <Self::DataFilesAvailability as DataFilesAvailability>::Result<'_, T>,
f: impl FnOnce(T) -> U,
) -> <Self::DataFilesAvailability as DataFilesAvailability>::Result<'_, U>
fn map_if_available<T, U>( v: <Self::DataFilesAvailability as DataFilesAvailability>::Result<'_, T>, f: impl FnOnce(T) -> U, ) -> <Self::DataFilesAvailability as DataFilesAvailability>::Result<'_, U>
Applies the given function f
to the value v
if the value is available
This is an alias for <Self::DataFilesAvailability as DataFilesAvailability>::map(v, f)
,
meaning that:
- if
Self::DataFilesAvailability
isGuaranteedDataFiles
, thenmap_if_available(v, f)
is equivalent tof(v)
and has typeU
- if
Self::DataFilesAvailability
isOptionalDataFiles
, thenmap_if_available(v, f)
is equivalent tov.map(f)
and has typeResult<U, &'err UnavailableProperty>
Sourcefn zip_if_available<'err, T1, T2>(
v1: <Self::DataFilesAvailability as DataFilesAvailability>::Result<'err, T1>,
v2: <Self::DataFilesAvailability as DataFilesAvailability>::Result<'err, T2>,
) -> <Self::DataFilesAvailability as DataFilesAvailability>::Result<'err, (T1, T2)>
fn zip_if_available<'err, T1, T2>( v1: <Self::DataFilesAvailability as DataFilesAvailability>::Result<'err, T1>, v2: <Self::DataFilesAvailability as DataFilesAvailability>::Result<'err, T2>, ) -> <Self::DataFilesAvailability as DataFilesAvailability>::Result<'err, (T1, T2)>
Returns (v1, v2)
if both are available, or an error otherwise
This is an alias for <Self::DataFilesAvailability as DataFilesAvailability>::zip(v, f)
,
meaning that:
- if
Self::DataFilesAvailability
isGuaranteedDataFiles
, thenzip_if_available(v1, v2)
is equivalent to(v1, v2)
and has type(T1, T2)
- if
Self::DataFilesAvailability
isOptionalDataFiles
, thenzip_if_available(v1, v2)
is equivalent tov1.and_then(|v1| v2.map(|v2| (v1, v2)))
and has typeResult<(T1, T2), &'err UnavailableProperty>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.