pub enum InterpolationError {
MultipleMissing {
currency: Currency,
count: usize,
},
NegativeInferredCost {
currency: Currency,
per_unit: Decimal,
},
AmbiguousInferredCostCurrency {
candidates: String,
},
CannotInferCurrency {
account: Account,
},
DoesNotBalance {
currency: Currency,
residual: Decimal,
},
}Expand description
Errors that can occur during interpolation.
Variants§
MultipleMissing
Multiple unknowns in the same currency group, where an unknown is
either a posting with a missing amount or a posting with an empty
cost spec ({}) whose cost-basis weight is deferred to booking-
time lot matching. Bean-check enforces “at most one unknown per
currency group” — see issue #1026 for the cost-spec extension.
The variant name MultipleMissing is kept for API stability;
“missing amounts” in the error message is a slight overgeneral
(the count includes cost-unknowns, not just missing amounts), but
the field semantics are correct.
Fields
NegativeInferredCost
The residual-solved cost for an empty {} augmentation came out
negative — beancount rejects this (“Cost is negative”) rather than
booking a negative-cost lot (#1705 edge e14).
Fields
AmbiguousInferredCostCurrency
An empty {} cost spec names no currency and the transaction’s
other postings span more than one currency, so the cost currency
(and therefore the residual to solve from) is ambiguous — beancount
rejects this (“Failed to categorize posting”) (#1705 edge e15).
CannotInferCurrency
Cannot infer currency for a posting.
DoesNotBalance
Transaction does not balance after interpolation.
Trait Implementations§
Source§impl Clone for InterpolationError
impl Clone for InterpolationError
Source§fn clone(&self) -> InterpolationError
fn clone(&self) -> InterpolationError
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for InterpolationError
impl Debug for InterpolationError
Source§impl Display for InterpolationError
impl Display for InterpolationError
Source§impl Error for InterpolationError
impl Error for InterpolationError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Source§impl From<InterpolationError> for BookingError
impl From<InterpolationError> for BookingError
Source§fn from(source: InterpolationError) -> Self
fn from(source: InterpolationError) -> Self
Auto Trait Implementations§
impl Freeze for InterpolationError
impl RefUnwindSafe for InterpolationError
impl Send for InterpolationError
impl Sync for InterpolationError
impl Unpin for InterpolationError
impl UnsafeUnpin for InterpolationError
impl UnwindSafe for InterpolationError
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.