Coverage Report

Created: 2025-07-23 06:05

/rust/registry/src/index.crates.io-6f17d22bba15001f/jiff-0.2.5/src/error.rs
Line
Count
Source (jump to first uncovered line)
1
use crate::{shared::util::error::Error as SharedError, util::sync::Arc};
2
3
/// Creates a new ad hoc error with no causal chain.
4
///
5
/// This accepts the same arguments as the `format!` macro. The error it
6
/// creates is just a wrapper around the string created by `format!`.
7
macro_rules! err {
8
    ($($tt:tt)*) => {{
9
        crate::error::Error::adhoc_from_args(format_args!($($tt)*))
10
    }}
11
}
12
13
pub(crate) use err;
14
15
/// An error that can occur in this crate.
16
///
17
/// The most common type of error is a result of overflow. But other errors
18
/// exist as well:
19
///
20
/// * Time zone database lookup failure.
21
/// * Configuration problem. (For example, trying to round a span with calendar
22
/// units without providing a relative datetime.)
23
/// * An I/O error as a result of trying to open a time zone database from a
24
/// directory via
25
/// [`TimeZoneDatabase::from_dir`](crate::tz::TimeZoneDatabase::from_dir).
26
/// * Parse errors.
27
///
28
/// # Introspection is limited
29
///
30
/// Other than implementing the [`std::error::Error`] trait when the
31
/// `std` feature is enabled, the [`core::fmt::Debug`] trait and the
32
/// [`core::fmt::Display`] trait, this error type currently provides no
33
/// introspection capabilities.
34
///
35
/// # Design
36
///
37
/// This crate follows the "One True God Error Type Pattern," where only one
38
/// error type exists for a variety of different operations. This design was
39
/// chosen after attempting to provide finer grained error types. But finer
40
/// grained error types proved difficult in the face of composition.
41
///
42
/// More about this design choice can be found in a GitHub issue
43
/// [about error types].
44
///
45
/// [about error types]: https://github.com/BurntSushi/jiff/issues/8
46
#[derive(Clone)]
47
pub struct Error {
48
    /// The internal representation of an error.
49
    ///
50
    /// This is in an `Arc` to make an `Error` cloneable. It could otherwise
51
    /// be automatically cloneable, but it embeds a `std::io::Error` when the
52
    /// `std` feature is enabled, which isn't cloneable.
53
    ///
54
    /// This also makes clones cheap. And it also make the size of error equal
55
    /// to one word (although a `Box` would achieve that last goal). This is
56
    /// why we put the `Arc` here instead of on `std::io::Error` directly.
57
    inner: Option<Arc<ErrorInner>>,
58
}
59
60
#[derive(Debug)]
61
#[cfg_attr(not(feature = "alloc"), derive(Clone))]
62
struct ErrorInner {
63
    kind: ErrorKind,
64
    #[cfg(feature = "alloc")]
65
    cause: Option<Error>,
66
}
67
68
/// The underlying kind of a [`Error`].
69
#[derive(Debug)]
70
#[cfg_attr(not(feature = "alloc"), derive(Clone))]
71
enum ErrorKind {
72
    /// An ad hoc error that is constructed from anything that implements
73
    /// the `core::fmt::Display` trait.
74
    ///
75
    /// In theory we try to avoid these, but they tend to be awfully
76
    /// convenient. In practice, we use them a lot, and only use a structured
77
    /// representation when a lot of different error cases fit neatly into a
78
    /// structure (like range errors).
79
    Adhoc(AdhocError),
80
    /// An error that occurs when a number is not within its allowed range.
81
    ///
82
    /// This can occur directly as a result of a number provided by the caller
83
    /// of a public API, or as a result of an operation on a number that
84
    /// results in it being out of range.
85
    Range(RangeError),
86
    /// An error that occurs within `jiff::shared`.
87
    ///
88
    /// It has its own error type to avoid bringing in this much bigger error
89
    /// type.
90
    Shared(SharedError),
91
    /// An error associated with a file path.
92
    ///
93
    /// This is generally expected to always have a cause attached to it
94
    /// explaining what went wrong. The error variant is just a path to make
95
    /// it composable with other error types.
96
    ///
97
    /// The cause is typically `Adhoc` or `IO`.
98
    ///
99
    /// When `std` is not enabled, this variant can never be constructed.
100
    #[allow(dead_code)] // not used in some feature configs
101
    FilePath(FilePathError),
102
    /// An error that occurs when interacting with the file system.
103
    ///
104
    /// This is effectively a wrapper around `std::io::Error` coupled with a
105
    /// `std::path::PathBuf`.
106
    ///
107
    /// When `std` is not enabled, this variant can never be constructed.
108
    #[allow(dead_code)] // not used in some feature configs
109
    IO(IOError),
110
}
111
112
impl Error {
113
    /// Creates a new "ad hoc" error value.
114
    ///
115
    /// An ad hoc error value is just an opaque string. In theory we should
116
    /// avoid creating such error values, but in practice, they are extremely
117
    /// convenient. And the alternative is quite brutal given the varied ways
118
    /// in which things in a datetime library can fail. (Especially parsing
119
    /// errors.)
120
    #[cfg(feature = "alloc")]
121
0
    pub(crate) fn adhoc<'a>(message: impl core::fmt::Display + 'a) -> Error {
122
0
        Error::from(ErrorKind::Adhoc(AdhocError::from_display(message)))
123
0
    }
124
125
    /// Like `Error::adhoc`, but accepts a `core::fmt::Arguments`.
126
    ///
127
    /// This is used with the `err!` macro so that we can thread a
128
    /// `core::fmt::Arguments` down. This lets us extract a `&'static str`
129
    /// from some messages in core-only mode and provide somewhat decent error
130
    /// messages in some cases.
131
0
    pub(crate) fn adhoc_from_args<'a>(
132
0
        message: core::fmt::Arguments<'a>,
133
0
    ) -> Error {
134
0
        Error::from(ErrorKind::Adhoc(AdhocError::from_args(message)))
135
0
    }
136
137
    /// Like `Error::adhoc`, but creates an error from a `&'static str`
138
    /// directly.
139
    ///
140
    /// This is useful in contexts where you know you have a `&'static str`,
141
    /// and avoids relying on `alloc`-only routines like `Error::adhoc`.
142
0
    pub(crate) fn adhoc_from_static_str(message: &'static str) -> Error {
143
0
        Error::from(ErrorKind::Adhoc(AdhocError::from_static_str(message)))
144
0
    }
145
146
    /// Creates a new error indicating that a `given` value is out of the
147
    /// specified `min..=max` range. The given `what` label is used in the
148
    /// error message as a human readable description of what exactly is out
149
    /// of range. (e.g., "seconds")
150
0
    pub(crate) fn range(
151
0
        what: &'static str,
152
0
        given: impl Into<i128>,
153
0
        min: impl Into<i128>,
154
0
        max: impl Into<i128>,
155
0
    ) -> Error {
156
0
        Error::from(ErrorKind::Range(RangeError::new(what, given, min, max)))
157
0
    }
Unexecuted instantiation: <jiff::error::Error>::range::<jiff::util::rangeint::ri32<-999999999, 999999999>, i32, i32>
Unexecuted instantiation: <jiff::error::Error>::range::<i8, i8, i8>
Unexecuted instantiation: <jiff::error::Error>::range::<i8, i128, i128>
Unexecuted instantiation: <jiff::error::Error>::range::<i32, i32, i32>
Unexecuted instantiation: <jiff::error::Error>::range::<i128, i128, i128>
Unexecuted instantiation: <jiff::error::Error>::range::<i16, i16, i16>
Unexecuted instantiation: <jiff::error::Error>::range::<i64, i8, i8>
Unexecuted instantiation: <jiff::error::Error>::range::<i64, i32, i32>
Unexecuted instantiation: <jiff::error::Error>::range::<i64, i128, i128>
Unexecuted instantiation: <jiff::error::Error>::range::<i64, i16, i16>
Unexecuted instantiation: <jiff::error::Error>::range::<i64, i64, i64>
158
159
    /// Creates a new error from the special "shared" error type.
160
0
    pub(crate) fn shared(err: SharedError) -> Error {
161
0
        Error::from(ErrorKind::Shared(err))
162
0
    }
163
164
    /// A convenience constructor for building an I/O error.
165
    ///
166
    /// This returns an error that is just a simple wrapper around the
167
    /// `std::io::Error` type. In general, callers should alwasys attach some
168
    /// kind of context to this error (like a file path).
169
    ///
170
    /// This is only available when the `std` feature is enabled.
171
    #[cfg(feature = "std")]
172
0
    pub(crate) fn io(err: std::io::Error) -> Error {
173
0
        Error::from(ErrorKind::IO(IOError { err }))
174
0
    }
175
176
    /// Contextualizes this error by associating the given file path with it.
177
    ///
178
    /// This is a convenience routine for calling `Error::context` with a
179
    /// `FilePathError`.
180
    ///
181
    /// This is only available when the `std` feature is enabled.
182
    #[cfg(feature = "tzdb-zoneinfo")]
183
    pub(crate) fn path(self, path: impl Into<std::path::PathBuf>) -> Error {
184
        let err = Error::from(ErrorKind::FilePath(FilePathError {
185
            path: path.into(),
186
        }));
187
        self.context(err)
188
    }
189
190
    /*
191
    /// Creates a new "unknown" Jiff error.
192
    ///
193
    /// The benefit of this API is that it permits creating an `Error` in a
194
    /// `const` context. But the error message quality is currently pretty
195
    /// bad: it's just a generic "unknown jiff error" message.
196
    ///
197
    /// This could be improved to take a `&'static str`, but I believe this
198
    /// will require pointer tagging in order to avoid increasing the size of
199
    /// `Error`. (Which is important, because of how many perf sensitive
200
    /// APIs return a `Result<T, Error>` in Jiff.
201
    pub(crate) const fn unknown() -> Error {
202
        Error { inner: None }
203
    }
204
    */
205
}
206
207
#[cfg(feature = "std")]
208
impl std::error::Error for Error {}
209
210
impl core::fmt::Display for Error {
211
0
    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
212
0
        #[cfg(feature = "alloc")]
213
0
        {
214
0
            let mut err = self;
215
            loop {
216
0
                let Some(ref inner) = err.inner else {
217
0
                    write!(f, "unknown jiff error")?;
218
0
                    break;
219
                };
220
0
                write!(f, "{}", inner.kind)?;
221
0
                err = match inner.cause.as_ref() {
222
0
                    None => break,
223
0
                    Some(err) => err,
224
0
                };
225
0
                write!(f, ": ")?;
226
            }
227
0
            Ok(())
228
        }
229
        #[cfg(not(feature = "alloc"))]
230
        {
231
            match self.inner {
232
                None => write!(f, "unknown jiff error"),
233
                Some(ref inner) => write!(f, "{}", inner.kind),
234
            }
235
        }
236
0
    }
237
}
238
239
impl core::fmt::Debug for Error {
240
0
    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
241
0
        if !f.alternate() {
242
0
            core::fmt::Display::fmt(self, f)
243
        } else {
244
0
            let Some(ref inner) = self.inner else {
245
0
                return f
246
0
                    .debug_struct("Error")
247
0
                    .field("kind", &"None")
248
0
                    .finish();
249
            };
250
            #[cfg(feature = "alloc")]
251
            {
252
0
                f.debug_struct("Error")
253
0
                    .field("kind", &inner.kind)
254
0
                    .field("cause", &inner.cause)
255
0
                    .finish()
256
            }
257
            #[cfg(not(feature = "alloc"))]
258
            {
259
                f.debug_struct("Error").field("kind", &inner.kind).finish()
260
            }
261
        }
262
0
    }
263
}
264
265
impl core::fmt::Display for ErrorKind {
266
0
    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
267
0
        match *self {
268
0
            ErrorKind::Adhoc(ref msg) => msg.fmt(f),
269
0
            ErrorKind::Range(ref err) => err.fmt(f),
270
0
            ErrorKind::Shared(ref err) => err.fmt(f),
271
0
            ErrorKind::FilePath(ref err) => err.fmt(f),
272
0
            ErrorKind::IO(ref err) => err.fmt(f),
273
        }
274
0
    }
275
}
276
277
impl From<ErrorKind> for Error {
278
0
    fn from(kind: ErrorKind) -> Error {
279
0
        #[cfg(feature = "alloc")]
280
0
        {
281
0
            Error { inner: Some(Arc::new(ErrorInner { kind, cause: None })) }
282
0
        }
283
0
        #[cfg(not(feature = "alloc"))]
284
0
        {
285
0
            Error { inner: Some(Arc::new(ErrorInner { kind })) }
286
0
        }
287
0
    }
288
}
289
290
/// A generic error message.
291
///
292
/// This somewhat unfortunately represents most of the errors in Jiff. When I
293
/// first started building Jiff, I had a goal of making every error structured.
294
/// But this ended up being a ton of work, and I find it much easier and nicer
295
/// for error messages to be embedded where they occur.
296
#[cfg_attr(not(feature = "alloc"), derive(Clone))]
297
struct AdhocError {
298
    #[cfg(feature = "alloc")]
299
    message: alloc::boxed::Box<str>,
300
    #[cfg(not(feature = "alloc"))]
301
    message: &'static str,
302
}
303
304
impl AdhocError {
305
    #[cfg(feature = "alloc")]
306
0
    fn from_display<'a>(message: impl core::fmt::Display + 'a) -> AdhocError {
307
        use alloc::string::ToString;
308
309
0
        let message = message.to_string().into_boxed_str();
310
0
        AdhocError { message }
311
0
    }
Unexecuted instantiation: <jiff::error::AdhocError>::from_display::<alloc::string::String>
Unexecuted instantiation: <jiff::error::AdhocError>::from_display::<core::fmt::Arguments>
Unexecuted instantiation: <jiff::error::AdhocError>::from_display::<&str>
312
313
0
    fn from_args<'a>(message: core::fmt::Arguments<'a>) -> AdhocError {
314
0
        #[cfg(feature = "alloc")]
315
0
        {
316
0
            AdhocError::from_display(message)
317
0
        }
318
0
        #[cfg(not(feature = "alloc"))]
319
0
        {
320
0
            let message = message.as_str().unwrap_or(
321
0
                "unknown Jiff error (better error messages require \
322
0
                 enabling the `alloc` feature for the `jiff` crate)",
323
0
            );
324
0
            AdhocError::from_static_str(message)
325
0
        }
326
0
    }
327
328
0
    fn from_static_str(message: &'static str) -> AdhocError {
329
0
        #[cfg(feature = "alloc")]
330
0
        {
331
0
            AdhocError::from_display(message)
332
0
        }
333
0
        #[cfg(not(feature = "alloc"))]
334
0
        {
335
0
            AdhocError { message }
336
0
        }
337
0
    }
338
}
339
340
#[cfg(feature = "std")]
341
impl std::error::Error for AdhocError {}
342
343
impl core::fmt::Display for AdhocError {
344
0
    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
345
0
        core::fmt::Display::fmt(&self.message, f)
346
0
    }
347
}
348
349
impl core::fmt::Debug for AdhocError {
350
0
    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
351
0
        core::fmt::Debug::fmt(&self.message, f)
352
0
    }
353
}
354
355
/// An error that occurs when an input value is out of bounds.
356
///
357
/// The error message produced by this type will include a name describing
358
/// which input was out of bounds, the value given and its minimum and maximum
359
/// allowed values.
360
#[derive(Debug)]
361
#[cfg_attr(not(feature = "alloc"), derive(Clone))]
362
struct RangeError {
363
    what: &'static str,
364
    #[cfg(feature = "alloc")]
365
    given: i128,
366
    #[cfg(feature = "alloc")]
367
    min: i128,
368
    #[cfg(feature = "alloc")]
369
    max: i128,
370
}
371
372
impl RangeError {
373
0
    fn new(
374
0
        what: &'static str,
375
0
        _given: impl Into<i128>,
376
0
        _min: impl Into<i128>,
377
0
        _max: impl Into<i128>,
378
0
    ) -> RangeError {
379
0
        RangeError {
380
0
            what,
381
0
            #[cfg(feature = "alloc")]
382
0
            given: _given.into(),
383
0
            #[cfg(feature = "alloc")]
384
0
            min: _min.into(),
385
0
            #[cfg(feature = "alloc")]
386
0
            max: _max.into(),
387
0
        }
388
0
    }
Unexecuted instantiation: <jiff::error::RangeError>::new::<jiff::util::rangeint::ri32<-999999999, 999999999>, i32, i32>
Unexecuted instantiation: <jiff::error::RangeError>::new::<i8, i8, i8>
Unexecuted instantiation: <jiff::error::RangeError>::new::<i8, i128, i128>
Unexecuted instantiation: <jiff::error::RangeError>::new::<i32, i32, i32>
Unexecuted instantiation: <jiff::error::RangeError>::new::<i128, i128, i128>
Unexecuted instantiation: <jiff::error::RangeError>::new::<i16, i16, i16>
Unexecuted instantiation: <jiff::error::RangeError>::new::<i64, i8, i8>
Unexecuted instantiation: <jiff::error::RangeError>::new::<i64, i32, i32>
Unexecuted instantiation: <jiff::error::RangeError>::new::<i64, i128, i128>
Unexecuted instantiation: <jiff::error::RangeError>::new::<i64, i16, i16>
Unexecuted instantiation: <jiff::error::RangeError>::new::<i64, i64, i64>
389
}
390
391
#[cfg(feature = "std")]
392
impl std::error::Error for RangeError {}
393
394
impl core::fmt::Display for RangeError {
395
0
    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
396
0
        #[cfg(feature = "alloc")]
397
0
        {
398
0
            let RangeError { what, given, min, max } = *self;
399
0
            write!(
400
0
                f,
401
0
                "parameter '{what}' with value {given} \
402
0
                 is not in the required range of {min}..={max}",
403
0
            )
404
0
        }
405
0
        #[cfg(not(feature = "alloc"))]
406
0
        {
407
0
            let RangeError { what } = *self;
408
0
            write!(f, "parameter '{what}' is not in the required range")
409
0
        }
410
0
    }
411
}
412
413
/// A `std::io::Error`.
414
///
415
/// This type is itself always available, even when the `std` feature is not
416
/// enabled. When `std` is not enabled, a value of this type can never be
417
/// constructed.
418
///
419
/// Otherwise, this type is a simple wrapper around `std::io::Error`. Its
420
/// purpose is to encapsulate the conditional compilation based on the `std`
421
/// feature.
422
#[cfg_attr(not(feature = "alloc"), derive(Clone))]
423
struct IOError {
424
    #[cfg(feature = "std")]
425
    err: std::io::Error,
426
}
427
428
#[cfg(feature = "std")]
429
impl std::error::Error for IOError {}
430
431
impl core::fmt::Display for IOError {
432
0
    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
433
0
        #[cfg(feature = "std")]
434
0
        {
435
0
            write!(f, "{}", self.err)
436
0
        }
437
0
        #[cfg(not(feature = "std"))]
438
0
        {
439
0
            write!(f, "<BUG: SHOULD NOT EXIST>")
440
0
        }
441
0
    }
442
}
443
444
impl core::fmt::Debug for IOError {
445
0
    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
446
0
        #[cfg(feature = "std")]
447
0
        {
448
0
            f.debug_struct("IOError").field("err", &self.err).finish()
449
0
        }
450
0
        #[cfg(not(feature = "std"))]
451
0
        {
452
0
            write!(f, "<BUG: SHOULD NOT EXIST>")
453
0
        }
454
0
    }
455
}
456
457
#[cfg(feature = "std")]
458
impl From<std::io::Error> for IOError {
459
0
    fn from(err: std::io::Error) -> IOError {
460
0
        IOError { err }
461
0
    }
462
}
463
464
#[cfg_attr(not(feature = "alloc"), derive(Clone))]
465
struct FilePathError {
466
    #[cfg(feature = "std")]
467
    path: std::path::PathBuf,
468
}
469
470
#[cfg(feature = "std")]
471
impl std::error::Error for FilePathError {}
472
473
impl core::fmt::Display for FilePathError {
474
0
    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
475
0
        #[cfg(feature = "std")]
476
0
        {
477
0
            write!(f, "{}", self.path.display())
478
0
        }
479
0
        #[cfg(not(feature = "std"))]
480
0
        {
481
0
            write!(f, "<BUG: SHOULD NOT EXIST>")
482
0
        }
483
0
    }
484
}
485
486
impl core::fmt::Debug for FilePathError {
487
0
    fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
488
0
        #[cfg(feature = "std")]
489
0
        {
490
0
            f.debug_struct("FilePathError").field("path", &self.path).finish()
491
0
        }
492
0
        #[cfg(not(feature = "std"))]
493
0
        {
494
0
            write!(f, "<BUG: SHOULD NOT EXIST>")
495
0
        }
496
0
    }
497
}
498
499
/// A simple trait to encapsulate automatic conversion to `Error`.
500
///
501
/// This trait basically exists to make `Error::context` work without needing
502
/// to rely on public `From` impls. For example, without this trait, we might
503
/// otherwise write `impl From<String> for Error`. But this would make it part
504
/// of the public API. Which... maybe we should do, but at time of writing,
505
/// I'm starting very conservative so that we can evolve errors in semver
506
/// compatible ways.
507
pub(crate) trait IntoError {
508
    fn into_error(self) -> Error;
509
}
510
511
impl IntoError for Error {
512
0
    fn into_error(self) -> Error {
513
0
        self
514
0
    }
515
}
516
517
impl IntoError for &'static str {
518
0
    fn into_error(self) -> Error {
519
0
        Error::adhoc_from_static_str(self)
520
0
    }
521
}
522
523
#[cfg(feature = "alloc")]
524
impl IntoError for alloc::string::String {
525
0
    fn into_error(self) -> Error {
526
0
        Error::adhoc(self)
527
0
    }
528
}
529
530
/// A trait for contextualizing error values.
531
///
532
/// This makes it easy to contextualize either `Error` or `Result<T, Error>`.
533
/// Specifically, in the latter case, it absolves one of the need to call
534
/// `map_err` everywhere one wants to add context to an error.
535
///
536
/// This trick was borrowed from `anyhow`.
537
pub(crate) trait ErrorContext {
538
    /// Contextualize the given consequent error with this (`self`) error as
539
    /// the cause.
540
    ///
541
    /// This is equivalent to saying that "consequent is caused by self."
542
    ///
543
    /// Note that if an `Error` is given for `kind`, then this panics if it has
544
    /// a cause. (Because the cause would otherwise be dropped. An error causal
545
    /// chain is just a linked list, not a tree.)
546
    fn context(self, consequent: impl IntoError) -> Self;
547
548
    /// Like `context`, but hides error construction within a closure.
549
    ///
550
    /// This is useful if the creation of the consequent error is not otherwise
551
    /// guarded and when error construction is potentially "costly" (i.e., it
552
    /// allocates). The closure avoids paying the cost of contextual error
553
    /// creation in the happy path.
554
    ///
555
    /// Usually this only makes sense to use on a `Result<T, Error>`, otherwise
556
    /// the closure is just executed immediately anyway.
557
    fn with_context<E: IntoError>(
558
        self,
559
        consequent: impl FnOnce() -> E,
560
    ) -> Self;
561
}
562
563
impl ErrorContext for Error {
564
    #[inline(always)]
565
0
    fn context(self, consequent: impl IntoError) -> Error {
566
0
        #[cfg(feature = "alloc")]
567
0
        {
568
0
            let mut err = consequent.into_error();
569
0
            if err.inner.is_none() {
570
0
                err = err!("unknown jiff error");
571
0
            }
572
0
            let inner = err.inner.as_mut().unwrap();
573
0
            assert!(
574
0
                inner.cause.is_none(),
575
0
                "cause of consequence must be `None`"
576
            );
577
            // OK because we just created this error so the Arc
578
            // has one reference.
579
0
            Arc::get_mut(inner).unwrap().cause = Some(self);
580
0
            err
581
0
        }
582
0
        #[cfg(not(feature = "alloc"))]
583
0
        {
584
0
            // We just completely drop `self`. :-(
585
0
            consequent.into_error()
586
0
        }
587
0
    }
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::context::<&str>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::context::<jiff::error::Error>
588
589
    #[inline(always)]
590
0
    fn with_context<E: IntoError>(
591
0
        self,
592
0
        consequent: impl FnOnce() -> E,
593
0
    ) -> Error {
594
0
        #[cfg(feature = "alloc")]
595
0
        {
596
0
            let mut err = consequent().into_error();
597
0
            if err.inner.is_none() {
598
0
                err = err!("unknown jiff error");
599
0
            }
600
0
            let inner = err.inner.as_mut().unwrap();
601
0
            assert!(
602
0
                inner.cause.is_none(),
603
0
                "cause of consequence must be `None`"
604
            );
605
            // OK because we just created this error so the Arc
606
            // has one reference.
607
0
            Arc::get_mut(inner).unwrap().cause = Some(self);
608
0
            err
609
0
        }
610
0
        #[cfg(not(feature = "alloc"))]
611
0
        {
612
0
            // We just completely drop `self`. :-(
613
0
            consequent().into_error()
614
0
        }
615
0
    }
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::civil::datetime::DateTimeRound>::round<jiff::util::rangeint::ri64<1000000000, 604800000000000>>::{closure#0}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::zoned::Zoned>::checked_add_span::{closure#2}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::zoned::Zoned>::checked_add_span::{closure#3}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::zoned::Zoned>::checked_add_span::{closure#4}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::zoned::Zoned>::checked_add_span::{closure#1}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::duration::Duration>::to_signed::{closure#0}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::timestamp::Timestamp>::checked_add_span::{closure#0}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::timestamp::Timestamp>::checked_add_span::{closure#1}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::strtime::BrokenDownTime>::to_timestamp::{closure#0}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::civil::date::Date>::checked_add_duration::{closure#0}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::civil::datetime::DateTime>::checked_add_span::{closure#0}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::civil::datetime::DateTime>::checked_add_span::{closure#2}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::civil::datetime::DateTime>::checked_add_span::{closure#1}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::civil::datetime::DateTime>::checked_add_duration::{closure#0}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::civil::datetime::DateTime>::checked_add_span_general::{closure#0}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::civil::datetime::DateTime>::checked_add_span_general::{closure#2}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::civil::datetime::DateTime>::checked_add_span_general::{closure#1}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::strtime::parse::Parser>::parse_timestamp::{closure#1}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::strtime::parse::Parser>::parse_offset_colon::{closure#2}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::strtime::parse::Parser>::parse_offset_colon::{closure#3}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::strtime::parse::Parser>::parse_offset_colon::{closure#1}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::strtime::parse::Parser>::parse_offset_nocolon::{closure#2}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::strtime::parse::Parser>::parse_offset_nocolon::{closure#3}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::strtime::parse::Parser>::parse_offset_nocolon::{closure#1}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::ParsedDateTime>::to_ambiguous_zoned::{closure#2}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::ParsedDateTime>::to_ambiguous_zoned::{closure#4}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::signed_duration::SignedDuration>::system_until::{closure#0}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::signed_duration::SignedDuration>::system_until::{closure#1}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::tz::offset::Offset>::to_timestamp::{closure#1}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::tz::ambiguous::AmbiguousZoned>::compatible::{closure#0}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::tz::ambiguous::AmbiguousZoned>::unambiguous::{closure#0}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::tz::ambiguous::AmbiguousZoned>::later::{closure#0}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::tz::ambiguous::AmbiguousZoned>::earlier::{closure#0}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::RelativeSpanKind>::into_relative_span::{closure#0}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::RelativeSpanKind>::into_relative_span::{closure#1}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::RelativeCivil>::checked_add::{closure#0}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::RelativeCivil>::checked_add::{closure#1}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::RelativeCivil>::checked_add_duration::{closure#0}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::RelativeCivil>::checked_add_duration::{closure#1}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::RelativeCivil>::new::{closure#0}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::RelativeCivil>::until::{closure#0}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::RelativeZoned>::checked_add::{closure#0}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::RelativeZoned>::checked_add_duration::{closure#0}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::RelativeZoned>::until::{closure#0}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::Nudge>::relative_calendar::{closure#0}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::Nudge>::relative_calendar::{closure#1}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::Nudge>::relative_invariant::{closure#0}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::Nudge>::relative_zoned_time::{closure#0}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::Nudge>::bubble::{closure#0}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::Nudge>::bubble::{closure#1}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::offset::Parser>::parse_hours::{closure#1}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::offset::Parser>::parse_minutes::{closure#1}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::offset::Parser>::parse_numeric::{closure#0}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::offset::Parser>::parse_numeric::{closure#2}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::offset::Parser>::parse_numeric::{closure#3}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::offset::Parser>::parse_numeric::{closure#5}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::offset::Parser>::parse_numeric::{closure#6}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::offset::Parser>::parse_numeric::{closure#8}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::offset::Parser>::parse_numeric::{closure#1}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::offset::Parser>::parse_seconds::{closure#1}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::ParsedTimeZone>::into_time_zone::{closure#0}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::ParsedTimeZone>::into_time_zone::{closure#1}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_hour::{closure#1}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_year::{closure#3}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_year::{closure#1}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_month::{closure#1}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_minute::{closure#1}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_second::{closure#1}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_date_spec::{closure#0}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_date_spec::{closure#2}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_date_spec::{closure#3}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_date_spec::{closure#1}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_time_spec::{closure#0}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_time_spec::{closure#2}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_time_spec::{closure#3}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_time_spec::{closure#1}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_day::{closure#1}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::zoned::ZonedRound>::round::{closure#0}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::offset::Numeric>::to_offset::{closure#0}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::zoned::ZonedDifference>::until_with_largest_unit::{closure#2}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::zoned::ZonedDifference>::until_with_largest_unit::{closure#3}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::zoned::ZonedDifference>::until_with_largest_unit::{closure#4}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::zoned::ZonedDifference>::until_with_largest_unit::{closure#1}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, jiff::span::clamp_relative_span::{closure#0}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, jiff::span::clamp_relative_span::{closure#1}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, jiff::span::round_span_invariant::{closure#0}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, jiff::zoned::day_length::{closure#0}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, jiff::zoned::day_length::{closure#2}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, jiff::zoned::day_length::{closure#3}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, jiff::zoned::day_length::{closure#1}>
Unexecuted instantiation: <jiff::error::Error as jiff::error::ErrorContext>::with_context::<jiff::error::Error, jiff::fmt::util::fractional_time_to_span::{closure#0}>
616
}
617
618
impl<T> ErrorContext for Result<T, Error> {
619
    #[inline(always)]
620
0
    fn context(self, consequent: impl IntoError) -> Result<T, Error> {
621
0
        self.map_err(|err| err.context(consequent))
Unexecuted instantiation: <core::result::Result<jiff::fmt::Parsed<()>, jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::util::rangeint::ri8<0, 23>, jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::util::rangeint::ri8<0, 25>, jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::util::rangeint::ri8<0, 53>, jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::util::rangeint::ri8<0, 59>, jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::util::rangeint::ri8<0, 99>, jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::util::rangeint::ri8<1, 31>, jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::util::rangeint::ri8<1, 53>, jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::util::rangeint::ri8<1, 12>, jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::util::rangeint::ri16<1, 366>, jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::util::rangeint::ri16<-9999, 9999>, jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::tz::offset::Offset, jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::civil::iso_week_date::ISOWeekDate, jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::civil::date::Date, jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::civil::time::Time, jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::civil::weekday::Weekday, jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::civil::datetime::DateTime, jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>::{closure#0}
Unexecuted instantiation: <core::result::Result<(jiff::util::rangeint::ri8<-1, 1>, &[u8]), jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>::{closure#0}
Unexecuted instantiation: <core::result::Result<(usize, &[u8]), jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>::{closure#0}
Unexecuted instantiation: <core::result::Result<(i64, &[u8]), jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>::{closure#0}
Unexecuted instantiation: <core::result::Result<i16, jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>::{closure#0}
Unexecuted instantiation: <core::result::Result<(), jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>::{closure#0}
Unexecuted instantiation: <core::result::Result<i64, jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>::{closure#0}
622
0
    }
Unexecuted instantiation: <core::result::Result<jiff::util::rangeint::ri8<0, 23>, jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>
Unexecuted instantiation: <core::result::Result<jiff::util::rangeint::ri8<0, 25>, jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>
Unexecuted instantiation: <core::result::Result<jiff::util::rangeint::ri8<0, 53>, jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>
Unexecuted instantiation: <core::result::Result<jiff::util::rangeint::ri8<0, 59>, jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>
Unexecuted instantiation: <core::result::Result<jiff::util::rangeint::ri8<0, 99>, jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>
Unexecuted instantiation: <core::result::Result<jiff::util::rangeint::ri8<1, 31>, jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>
Unexecuted instantiation: <core::result::Result<jiff::util::rangeint::ri8<1, 53>, jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>
Unexecuted instantiation: <core::result::Result<jiff::util::rangeint::ri8<1, 12>, jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>
Unexecuted instantiation: <core::result::Result<jiff::util::rangeint::ri16<1, 366>, jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>
Unexecuted instantiation: <core::result::Result<jiff::util::rangeint::ri16<-9999, 9999>, jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>
Unexecuted instantiation: <core::result::Result<jiff::civil::weekday::Weekday, jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>
Unexecuted instantiation: <core::result::Result<(jiff::util::rangeint::ri8<-1, 1>, &[u8]), jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>
Unexecuted instantiation: <core::result::Result<(usize, &[u8]), jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>
Unexecuted instantiation: <core::result::Result<(i64, &[u8]), jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>
Unexecuted instantiation: <core::result::Result<(), jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>
Unexecuted instantiation: <core::result::Result<i64, jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>
Unexecuted instantiation: <core::result::Result<jiff::tz::offset::Offset, jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>
Unexecuted instantiation: <core::result::Result<jiff::civil::iso_week_date::ISOWeekDate, jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>
Unexecuted instantiation: <core::result::Result<jiff::civil::date::Date, jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>
Unexecuted instantiation: <core::result::Result<jiff::civil::time::Time, jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>
Unexecuted instantiation: <core::result::Result<jiff::civil::datetime::DateTime, jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>
Unexecuted instantiation: <core::result::Result<i16, jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>
Unexecuted instantiation: <core::result::Result<jiff::fmt::Parsed<()>, jiff::error::Error> as jiff::error::ErrorContext>::context::<&str>
623
624
    #[inline(always)]
625
0
    fn with_context<E: IntoError>(
626
0
        self,
627
0
        consequent: impl FnOnce() -> E,
628
0
    ) -> Result<T, Error> {
629
0
        self.map_err(|err| err.with_context(consequent))
Unexecuted instantiation: <core::result::Result<jiff::fmt::Parsed<core::option::Option<jiff::util::rangeint::ri32<0, 999999999>>>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::offset::Parser>::parse_numeric::{closure#8}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::fmt::Parsed<core::option::Option<jiff::util::rangeint::ri32<0, 999999999>>>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_time_spec::{closure#3}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::fmt::Parsed<jiff::util::rangeint::ri8<0, 23>>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_time_spec::{closure#0}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::fmt::Parsed<jiff::util::rangeint::ri8<0, 25>>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::offset::Parser>::parse_numeric::{closure#1}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::fmt::Parsed<jiff::util::rangeint::ri8<0, 59>>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::offset::Parser>::parse_numeric::{closure#3}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::fmt::Parsed<jiff::util::rangeint::ri8<0, 59>>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::offset::Parser>::parse_numeric::{closure#6}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::fmt::Parsed<jiff::util::rangeint::ri8<0, 59>>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_time_spec::{closure#2}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::fmt::Parsed<jiff::util::rangeint::ri8<0, 59>>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_time_spec::{closure#1}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::fmt::Parsed<jiff::util::rangeint::ri8<1, 31>>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_date_spec::{closure#2}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::fmt::Parsed<jiff::util::rangeint::ri8<1, 12>>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_date_spec::{closure#1}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::fmt::Parsed<jiff::util::rangeint::ri8<-1, 1>>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::offset::Parser>::parse_numeric::{closure#0}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::fmt::Parsed<jiff::util::rangeint::ri16<-9999, 9999>>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_date_spec::{closure#0}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::fmt::Parsed<bool>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::offset::Parser>::parse_numeric::{closure#2}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::fmt::Parsed<bool>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::offset::Parser>::parse_numeric::{closure#5}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::util::rangeint::ri32<-93599, 93599>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::offset::Numeric>::to_offset::{closure#0}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::util::rangeint::ri32<-4371587, 2932896>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::civil::date::Date>::checked_add_duration::{closure#0}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::util::rangeint::ri64<1000000000, 604800000000000>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::zoned::ZonedRound>::round::{closure#0}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::util::rangeint::ri64<1000000000, 604800000000000>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, jiff::zoned::day_length::{closure#3}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::util::rangeint::ri64<-377705023201, 253402207200>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::timestamp::Timestamp>::checked_add_span::{closure#0}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::util::rangeint::ri64<-9223372036854775808, 9223372036854775807>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::Nudge>::bubble::{closure#0}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::util::rangeint::ri64<-9223372036854775808, 9223372036854775807>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, jiff::span::clamp_relative_span::{closure#0}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::util::rangeint::ri128<-0x1479b5cd6f30478a00, 0xdbca97cddeb8989ff>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::timestamp::Timestamp>::checked_add_span::{closure#1}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::signed_duration::SignedDuration, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::duration::Duration>::to_signed::{closure#0}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::signed_duration::SignedDuration, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::signed_duration::SignedDuration>::system_until::{closure#0}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::signed_duration::SignedDuration, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::signed_duration::SignedDuration>::system_until::{closure#1}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::span::Span, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, jiff::span::clamp_relative_span::{closure#1}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::span::Span, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, jiff::span::round_span_invariant::{closure#0}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::span::Span, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::RelativeSpanKind>::into_relative_span::{closure#0}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::span::Span, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::RelativeSpanKind>::into_relative_span::{closure#1}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::span::Span, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::RelativeCivil>::until::{closure#0}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::span::Span, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::RelativeZoned>::until::{closure#0}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::span::Span, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::Nudge>::relative_calendar::{closure#0}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::span::Span, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::Nudge>::relative_calendar::{closure#1}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::span::Span, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::Nudge>::relative_invariant::{closure#0}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::span::Span, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::Nudge>::relative_zoned_time::{closure#0}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::span::Span, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::Nudge>::bubble::{closure#1}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::span::Span, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, jiff::zoned::day_length::{closure#2}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::span::Span, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, jiff::fmt::util::fractional_time_to_span::{closure#0}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::zoned::Zoned, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, jiff::zoned::day_length::{closure#0}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::zoned::Zoned, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, jiff::zoned::day_length::{closure#1}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::zoned::Zoned, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::zoned::Zoned>::checked_add_span::{closure#1}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::zoned::Zoned, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::RelativeCivil>::checked_add::{closure#1}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::zoned::Zoned, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::RelativeCivil>::checked_add_duration::{closure#1}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::zoned::Zoned, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::RelativeCivil>::new::{closure#0}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::zoned::Zoned, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::RelativeZoned>::checked_add::{closure#0}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::zoned::Zoned, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::RelativeZoned>::checked_add_duration::{closure#0}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::zoned::Zoned, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::zoned::ZonedDifference>::until_with_largest_unit::{closure#2}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::zoned::Zoned, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::zoned::ZonedDifference>::until_with_largest_unit::{closure#4}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::timestamp::Timestamp, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::zoned::Zoned>::checked_add_span::{closure#3}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::timestamp::Timestamp, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::zoned::Zoned>::checked_add_span::{closure#4}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::timestamp::Timestamp, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::strtime::BrokenDownTime>::to_timestamp::{closure#0}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::timestamp::Timestamp, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::strtime::parse::Parser>::parse_timestamp::{closure#1}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::timestamp::Timestamp, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::tz::offset::Offset>::to_timestamp::{closure#1}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::timestamp::Timestamp, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::tz::ambiguous::AmbiguousZoned>::compatible::{closure#0}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::timestamp::Timestamp, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::tz::ambiguous::AmbiguousZoned>::unambiguous::{closure#0}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::timestamp::Timestamp, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::tz::ambiguous::AmbiguousZoned>::later::{closure#0}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::timestamp::Timestamp, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::tz::ambiguous::AmbiguousZoned>::earlier::{closure#0}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::tz::offset::Offset, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::ParsedTimeZone>::into_time_zone::{closure#1}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::tz::timezone::TimeZone, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::ParsedTimeZone>::into_time_zone::{closure#0}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::tz::ambiguous::AmbiguousZoned, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::ParsedDateTime>::to_ambiguous_zoned::{closure#2}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::tz::ambiguous::AmbiguousZoned, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::ParsedDateTime>::to_ambiguous_zoned::{closure#4}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::civil::date::Date, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::civil::datetime::DateTimeRound>::round<jiff::util::rangeint::ri64<1000000000, 604800000000000>>::{closure#0}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::civil::date::Date, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::civil::datetime::DateTime>::checked_add_span::{closure#0}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::civil::date::Date, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::civil::datetime::DateTime>::checked_add_span::{closure#2}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::civil::date::Date, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::civil::datetime::DateTime>::checked_add_duration::{closure#0}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::civil::date::Date, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::civil::datetime::DateTime>::checked_add_span_general::{closure#2}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::civil::date::Date, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::civil::datetime::DateTime>::checked_add_span_general::{closure#1}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::civil::date::Date, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_date_spec::{closure#3}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::civil::date::Date, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::zoned::ZonedDifference>::until_with_largest_unit::{closure#3}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::civil::date::Date, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::zoned::ZonedDifference>::until_with_largest_unit::{closure#1}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::civil::datetime::DateTime, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::zoned::Zoned>::checked_add_span::{closure#2}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::civil::datetime::DateTime, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::RelativeCivil>::checked_add::{closure#0}>::{closure#0}
Unexecuted instantiation: <core::result::Result<jiff::civil::datetime::DateTime, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::RelativeCivil>::checked_add_duration::{closure#0}>::{closure#0}
Unexecuted instantiation: <core::result::Result<(jiff::civil::time::Time, jiff::span::Span), jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::civil::datetime::DateTime>::checked_add_span::{closure#1}>::{closure#0}
Unexecuted instantiation: <core::result::Result<(jiff::civil::time::Time, jiff::span::Span), jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::civil::datetime::DateTime>::checked_add_span_general::{closure#0}>::{closure#0}
Unexecuted instantiation: <core::result::Result<i64, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::strtime::parse::Parser>::parse_offset_colon::{closure#2}>::{closure#0}
Unexecuted instantiation: <core::result::Result<i64, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::strtime::parse::Parser>::parse_offset_colon::{closure#3}>::{closure#0}
Unexecuted instantiation: <core::result::Result<i64, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::strtime::parse::Parser>::parse_offset_colon::{closure#1}>::{closure#0}
Unexecuted instantiation: <core::result::Result<i64, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::strtime::parse::Parser>::parse_offset_nocolon::{closure#2}>::{closure#0}
Unexecuted instantiation: <core::result::Result<i64, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::strtime::parse::Parser>::parse_offset_nocolon::{closure#3}>::{closure#0}
Unexecuted instantiation: <core::result::Result<i64, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::strtime::parse::Parser>::parse_offset_nocolon::{closure#1}>::{closure#0}
Unexecuted instantiation: <core::result::Result<i64, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::offset::Parser>::parse_hours::{closure#1}>::{closure#0}
Unexecuted instantiation: <core::result::Result<i64, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::offset::Parser>::parse_minutes::{closure#1}>::{closure#0}
Unexecuted instantiation: <core::result::Result<i64, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::offset::Parser>::parse_seconds::{closure#1}>::{closure#0}
Unexecuted instantiation: <core::result::Result<i64, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_hour::{closure#1}>::{closure#0}
Unexecuted instantiation: <core::result::Result<i64, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_year::{closure#3}>::{closure#0}
Unexecuted instantiation: <core::result::Result<i64, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_year::{closure#1}>::{closure#0}
Unexecuted instantiation: <core::result::Result<i64, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_month::{closure#1}>::{closure#0}
Unexecuted instantiation: <core::result::Result<i64, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_minute::{closure#1}>::{closure#0}
Unexecuted instantiation: <core::result::Result<i64, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_second::{closure#1}>::{closure#0}
Unexecuted instantiation: <core::result::Result<i64, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_day::{closure#1}>::{closure#0}
630
0
    }
Unexecuted instantiation: <core::result::Result<jiff::signed_duration::SignedDuration, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::signed_duration::SignedDuration>::system_until::{closure#0}>
Unexecuted instantiation: <core::result::Result<jiff::signed_duration::SignedDuration, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::signed_duration::SignedDuration>::system_until::{closure#1}>
Unexecuted instantiation: <core::result::Result<jiff::timestamp::Timestamp, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::strtime::parse::Parser>::parse_timestamp::{closure#1}>
Unexecuted instantiation: <core::result::Result<i64, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::strtime::parse::Parser>::parse_offset_colon::{closure#2}>
Unexecuted instantiation: <core::result::Result<i64, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::strtime::parse::Parser>::parse_offset_colon::{closure#3}>
Unexecuted instantiation: <core::result::Result<i64, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::strtime::parse::Parser>::parse_offset_colon::{closure#1}>
Unexecuted instantiation: <core::result::Result<i64, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::strtime::parse::Parser>::parse_offset_nocolon::{closure#2}>
Unexecuted instantiation: <core::result::Result<i64, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::strtime::parse::Parser>::parse_offset_nocolon::{closure#3}>
Unexecuted instantiation: <core::result::Result<i64, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::strtime::parse::Parser>::parse_offset_nocolon::{closure#1}>
Unexecuted instantiation: <core::result::Result<jiff::util::rangeint::ri64<1000000000, 604800000000000>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::zoned::ZonedRound>::round::{closure#0}>
Unexecuted instantiation: <core::result::Result<jiff::util::rangeint::ri64<1000000000, 604800000000000>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, jiff::zoned::day_length::{closure#3}>
Unexecuted instantiation: <core::result::Result<jiff::signed_duration::SignedDuration, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::duration::Duration>::to_signed::{closure#0}>
Unexecuted instantiation: <core::result::Result<jiff::span::Span, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, jiff::zoned::day_length::{closure#2}>
Unexecuted instantiation: <core::result::Result<jiff::zoned::Zoned, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, jiff::zoned::day_length::{closure#0}>
Unexecuted instantiation: <core::result::Result<jiff::zoned::Zoned, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, jiff::zoned::day_length::{closure#1}>
Unexecuted instantiation: <core::result::Result<jiff::zoned::Zoned, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::zoned::Zoned>::checked_add_span::{closure#1}>
Unexecuted instantiation: <core::result::Result<jiff::zoned::Zoned, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::zoned::ZonedDifference>::until_with_largest_unit::{closure#2}>
Unexecuted instantiation: <core::result::Result<jiff::zoned::Zoned, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::zoned::ZonedDifference>::until_with_largest_unit::{closure#4}>
Unexecuted instantiation: <core::result::Result<jiff::timestamp::Timestamp, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::zoned::Zoned>::checked_add_span::{closure#3}>
Unexecuted instantiation: <core::result::Result<jiff::timestamp::Timestamp, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::zoned::Zoned>::checked_add_span::{closure#4}>
Unexecuted instantiation: <core::result::Result<jiff::timestamp::Timestamp, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::strtime::BrokenDownTime>::to_timestamp::{closure#0}>
Unexecuted instantiation: <core::result::Result<jiff::timestamp::Timestamp, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::tz::ambiguous::AmbiguousZoned>::compatible::{closure#0}>
Unexecuted instantiation: <core::result::Result<jiff::timestamp::Timestamp, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::tz::ambiguous::AmbiguousZoned>::unambiguous::{closure#0}>
Unexecuted instantiation: <core::result::Result<jiff::timestamp::Timestamp, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::tz::ambiguous::AmbiguousZoned>::later::{closure#0}>
Unexecuted instantiation: <core::result::Result<jiff::timestamp::Timestamp, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::tz::ambiguous::AmbiguousZoned>::earlier::{closure#0}>
Unexecuted instantiation: <core::result::Result<jiff::civil::date::Date, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::zoned::ZonedDifference>::until_with_largest_unit::{closure#3}>
Unexecuted instantiation: <core::result::Result<jiff::civil::date::Date, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::zoned::ZonedDifference>::until_with_largest_unit::{closure#1}>
Unexecuted instantiation: <core::result::Result<jiff::civil::datetime::DateTime, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::zoned::Zoned>::checked_add_span::{closure#2}>
Unexecuted instantiation: <core::result::Result<jiff::util::rangeint::ri32<-4371587, 2932896>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::civil::date::Date>::checked_add_duration::{closure#0}>
Unexecuted instantiation: <core::result::Result<jiff::util::rangeint::ri64<-377705023201, 253402207200>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::timestamp::Timestamp>::checked_add_span::{closure#0}>
Unexecuted instantiation: <core::result::Result<jiff::util::rangeint::ri128<-0x1479b5cd6f30478a00, 0xdbca97cddeb8989ff>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::timestamp::Timestamp>::checked_add_span::{closure#1}>
Unexecuted instantiation: <core::result::Result<jiff::span::Span, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, jiff::fmt::util::fractional_time_to_span::{closure#0}>
Unexecuted instantiation: <core::result::Result<jiff::civil::date::Date, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::civil::datetime::DateTimeRound>::round<jiff::util::rangeint::ri64<1000000000, 604800000000000>>::{closure#0}>
Unexecuted instantiation: <core::result::Result<jiff::civil::date::Date, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::civil::datetime::DateTime>::checked_add_span::{closure#0}>
Unexecuted instantiation: <core::result::Result<jiff::civil::date::Date, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::civil::datetime::DateTime>::checked_add_span::{closure#2}>
Unexecuted instantiation: <core::result::Result<jiff::civil::date::Date, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::civil::datetime::DateTime>::checked_add_duration::{closure#0}>
Unexecuted instantiation: <core::result::Result<jiff::civil::date::Date, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::civil::datetime::DateTime>::checked_add_span_general::{closure#2}>
Unexecuted instantiation: <core::result::Result<jiff::civil::date::Date, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::civil::datetime::DateTime>::checked_add_span_general::{closure#1}>
Unexecuted instantiation: <core::result::Result<(jiff::civil::time::Time, jiff::span::Span), jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::civil::datetime::DateTime>::checked_add_span::{closure#1}>
Unexecuted instantiation: <core::result::Result<(jiff::civil::time::Time, jiff::span::Span), jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::civil::datetime::DateTime>::checked_add_span_general::{closure#0}>
Unexecuted instantiation: <core::result::Result<jiff::timestamp::Timestamp, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::tz::offset::Offset>::to_timestamp::{closure#1}>
Unexecuted instantiation: <core::result::Result<jiff::fmt::Parsed<core::option::Option<jiff::util::rangeint::ri32<0, 999999999>>>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::offset::Parser>::parse_numeric::{closure#8}>
Unexecuted instantiation: <core::result::Result<jiff::fmt::Parsed<core::option::Option<jiff::util::rangeint::ri32<0, 999999999>>>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_time_spec::{closure#3}>
Unexecuted instantiation: <core::result::Result<jiff::fmt::Parsed<jiff::util::rangeint::ri8<0, 23>>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_time_spec::{closure#0}>
Unexecuted instantiation: <core::result::Result<jiff::fmt::Parsed<jiff::util::rangeint::ri8<0, 25>>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::offset::Parser>::parse_numeric::{closure#1}>
Unexecuted instantiation: <core::result::Result<jiff::fmt::Parsed<jiff::util::rangeint::ri8<0, 59>>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::offset::Parser>::parse_numeric::{closure#3}>
Unexecuted instantiation: <core::result::Result<jiff::fmt::Parsed<jiff::util::rangeint::ri8<0, 59>>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::offset::Parser>::parse_numeric::{closure#6}>
Unexecuted instantiation: <core::result::Result<jiff::fmt::Parsed<jiff::util::rangeint::ri8<0, 59>>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_time_spec::{closure#2}>
Unexecuted instantiation: <core::result::Result<jiff::fmt::Parsed<jiff::util::rangeint::ri8<0, 59>>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_time_spec::{closure#1}>
Unexecuted instantiation: <core::result::Result<jiff::fmt::Parsed<jiff::util::rangeint::ri8<1, 31>>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_date_spec::{closure#2}>
Unexecuted instantiation: <core::result::Result<jiff::fmt::Parsed<jiff::util::rangeint::ri8<1, 12>>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_date_spec::{closure#1}>
Unexecuted instantiation: <core::result::Result<jiff::fmt::Parsed<jiff::util::rangeint::ri8<-1, 1>>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::offset::Parser>::parse_numeric::{closure#0}>
Unexecuted instantiation: <core::result::Result<jiff::fmt::Parsed<jiff::util::rangeint::ri16<-9999, 9999>>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_date_spec::{closure#0}>
Unexecuted instantiation: <core::result::Result<jiff::fmt::Parsed<bool>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::offset::Parser>::parse_numeric::{closure#2}>
Unexecuted instantiation: <core::result::Result<jiff::fmt::Parsed<bool>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::offset::Parser>::parse_numeric::{closure#5}>
Unexecuted instantiation: <core::result::Result<jiff::util::rangeint::ri32<-93599, 93599>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::offset::Numeric>::to_offset::{closure#0}>
Unexecuted instantiation: <core::result::Result<jiff::signed_duration::SignedDuration, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::signed_duration::SignedDuration>::system_until::{closure#0}>
Unexecuted instantiation: <core::result::Result<jiff::signed_duration::SignedDuration, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::signed_duration::SignedDuration>::system_until::{closure#1}>
Unexecuted instantiation: <core::result::Result<jiff::tz::offset::Offset, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::ParsedTimeZone>::into_time_zone::{closure#1}>
Unexecuted instantiation: <core::result::Result<jiff::tz::timezone::TimeZone, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::ParsedTimeZone>::into_time_zone::{closure#0}>
Unexecuted instantiation: <core::result::Result<jiff::tz::ambiguous::AmbiguousZoned, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::ParsedDateTime>::to_ambiguous_zoned::{closure#2}>
Unexecuted instantiation: <core::result::Result<jiff::tz::ambiguous::AmbiguousZoned, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::ParsedDateTime>::to_ambiguous_zoned::{closure#4}>
Unexecuted instantiation: <core::result::Result<jiff::civil::date::Date, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_date_spec::{closure#3}>
Unexecuted instantiation: <core::result::Result<i64, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::offset::Parser>::parse_hours::{closure#1}>
Unexecuted instantiation: <core::result::Result<i64, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::offset::Parser>::parse_minutes::{closure#1}>
Unexecuted instantiation: <core::result::Result<i64, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::offset::Parser>::parse_seconds::{closure#1}>
Unexecuted instantiation: <core::result::Result<i64, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_hour::{closure#1}>
Unexecuted instantiation: <core::result::Result<i64, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_year::{closure#3}>
Unexecuted instantiation: <core::result::Result<i64, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_year::{closure#1}>
Unexecuted instantiation: <core::result::Result<i64, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_month::{closure#1}>
Unexecuted instantiation: <core::result::Result<i64, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_minute::{closure#1}>
Unexecuted instantiation: <core::result::Result<i64, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_second::{closure#1}>
Unexecuted instantiation: <core::result::Result<i64, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::fmt::temporal::parser::DateTimeParser>::parse_day::{closure#1}>
Unexecuted instantiation: <core::result::Result<jiff::util::rangeint::ri64<-9223372036854775808, 9223372036854775807>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::Nudge>::bubble::{closure#0}>
Unexecuted instantiation: <core::result::Result<jiff::util::rangeint::ri64<-9223372036854775808, 9223372036854775807>, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, jiff::span::clamp_relative_span::{closure#0}>
Unexecuted instantiation: <core::result::Result<jiff::span::Span, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, jiff::span::clamp_relative_span::{closure#1}>
Unexecuted instantiation: <core::result::Result<jiff::span::Span, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, jiff::span::round_span_invariant::{closure#0}>
Unexecuted instantiation: <core::result::Result<jiff::span::Span, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::RelativeSpanKind>::into_relative_span::{closure#0}>
Unexecuted instantiation: <core::result::Result<jiff::span::Span, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::RelativeSpanKind>::into_relative_span::{closure#1}>
Unexecuted instantiation: <core::result::Result<jiff::span::Span, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::RelativeCivil>::until::{closure#0}>
Unexecuted instantiation: <core::result::Result<jiff::span::Span, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::RelativeZoned>::until::{closure#0}>
Unexecuted instantiation: <core::result::Result<jiff::span::Span, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::Nudge>::relative_calendar::{closure#0}>
Unexecuted instantiation: <core::result::Result<jiff::span::Span, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::Nudge>::relative_calendar::{closure#1}>
Unexecuted instantiation: <core::result::Result<jiff::span::Span, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::Nudge>::relative_invariant::{closure#0}>
Unexecuted instantiation: <core::result::Result<jiff::span::Span, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::Nudge>::relative_zoned_time::{closure#0}>
Unexecuted instantiation: <core::result::Result<jiff::span::Span, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::Nudge>::bubble::{closure#1}>
Unexecuted instantiation: <core::result::Result<jiff::zoned::Zoned, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::RelativeCivil>::checked_add::{closure#1}>
Unexecuted instantiation: <core::result::Result<jiff::zoned::Zoned, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::RelativeCivil>::checked_add_duration::{closure#1}>
Unexecuted instantiation: <core::result::Result<jiff::zoned::Zoned, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::RelativeCivil>::new::{closure#0}>
Unexecuted instantiation: <core::result::Result<jiff::zoned::Zoned, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::RelativeZoned>::checked_add::{closure#0}>
Unexecuted instantiation: <core::result::Result<jiff::zoned::Zoned, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::RelativeZoned>::checked_add_duration::{closure#0}>
Unexecuted instantiation: <core::result::Result<jiff::civil::datetime::DateTime, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::RelativeCivil>::checked_add::{closure#0}>
Unexecuted instantiation: <core::result::Result<jiff::civil::datetime::DateTime, jiff::error::Error> as jiff::error::ErrorContext>::with_context::<jiff::error::Error, <jiff::span::RelativeCivil>::checked_add_duration::{closure#0}>
631
}
632
633
#[cfg(test)]
634
mod tests {
635
    use super::*;
636
637
    // We test that our 'Error' type is the size we expect. This isn't an API
638
    // guarantee, but if the size increases, we really want to make sure we
639
    // decide to do that intentionally. So this should be a speed bump. And in
640
    // general, we should not increase the size without a very good reason.
641
    #[test]
642
    fn error_size() {
643
        let mut expected_size = core::mem::size_of::<usize>();
644
        if !cfg!(feature = "alloc") {
645
            // oooowwwwwwwwwwwch.
646
            //
647
            // Like, this is horrible, right? core-only environments are
648
            // precisely the place where one want to keep things slim. But
649
            // in core-only, I don't know of a way to introduce any sort of
650
            // indirection in the library level without using a completely
651
            // different API.
652
            //
653
            // This is what makes me doubt that core-only Jiff is actually
654
            // useful. In what context are people using a huge library like
655
            // Jiff but can't define a small little heap allocator?
656
            //
657
            // OK, this used to be `expected_size *= 10`, but I slimmed it down
658
            // to x3. Still kinda sucks right? If we tried harder, I think we
659
            // could probably slim this down more. And if we were willing to
660
            // sacrifice error message quality even more (like, all the way),
661
            // then we could make `Error` a zero sized type. Which might
662
            // actually be the right trade-off for core-only, but I'll hold off
663
            // until we have some real world use cases.
664
            expected_size *= 3;
665
        }
666
        assert_eq!(expected_size, core::mem::size_of::<Error>());
667
    }
668
}