1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
//! Failure surfaces of compaction and snapshot validation.
use Error;
/// Failure surface of [`CompactionStrategy::compact`] (and therefore of
/// [`ContextManager::compact_if_needed`]).
///
/// The façade [`Conversation::run`](https://docs.rs/ailoop) /
/// [`Conversation::stream`](https://docs.rs/ailoop) wraps this in
/// [`EngineError::Context`](https://docs.rs/ailoop) when compaction
/// fails mid-run.
///
/// [`CompactionStrategy::compact`]: crate::CompactionStrategy::compact
/// [`ContextManager::compact_if_needed`]: crate::ContextManager::compact_if_needed
/// Returned by [`ConversationSnapshot::new`] and
/// [`ContextManager::from_messages`] when the supplied parallel
/// vectors are inconsistent. Surfaces at restore time so a malformed
/// snapshot fails loudly instead of corrupting state silently.
///
/// [`ConversationSnapshot::new`]: crate::ConversationSnapshot::new
/// [`ContextManager::from_messages`]: crate::ContextManager::from_messages