use into error

This commit is contained in:
2025-07-18 21:19:30 +01:00
parent 8bff8dda04
commit 5b7c532353

View File

@@ -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(())
} }