use crate::BatchExecutionResult;
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct BatchCallResult<R, E> {
execution_result: BatchExecutionResult<E>,
values: Vec<Option<R>>,
}
impl<R, E> BatchCallResult<R, E> {
#[inline]
pub fn new(execution_result: BatchExecutionResult<E>, values: Vec<Option<R>>) -> Self {
Self {
execution_result,
values,
}
}
#[inline]
pub const fn execution_result(&self) -> &BatchExecutionResult<E> {
&self.execution_result
}
#[inline]
pub fn values(&self) -> &[Option<R>] {
self.values.as_slice()
}
#[inline]
pub fn into_execution_result(self) -> BatchExecutionResult<E> {
self.execution_result
}
#[inline]
pub fn into_values(self) -> Vec<Option<R>> {
self.values
}
#[inline]
pub fn into_parts(self) -> (BatchExecutionResult<E>, Vec<Option<R>>) {
(self.execution_result, self.values)
}
}