use into error
This commit is contained in:
11
src/calc.rs
11
src/calc.rs
@@ -50,15 +50,14 @@ impl From<Infallible> for StackCalcError {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<const SS: usize, const DS: usize, E: PrimInt + Unsigned> StackCalc<SS, DS, E> {
|
impl<const SS: usize, const DS: usize, E: PrimInt + Unsigned> StackCalc<SS, DS, E> {
|
||||||
pub fn push<V>(&mut self, val: V) -> Result<(), StackCalcError>
|
pub fn push(
|
||||||
where
|
&mut self,
|
||||||
V: TryInto<Decimal<DS, E>>,
|
val: impl TryInto<Decimal<DS, E>, Error: Into<StackCalcError>>,
|
||||||
StackCalcError: From<<V as TryInto<Decimal<DS, E>>>::Error>,
|
) -> Result<(), StackCalcError> {
|
||||||
{
|
|
||||||
if self.index == SS {
|
if self.index == SS {
|
||||||
return Err(StackCalcError::StackOverflow);
|
return Err(StackCalcError::StackOverflow);
|
||||||
}
|
}
|
||||||
self.stack[self.index] = val.try_into()?;
|
self.stack[self.index] = val.try_into().map_err(Into::into)?;
|
||||||
self.index += 1;
|
self.index += 1;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user