pub enum TextModelError {
NotConfigured,
Rejected(String),
Transient {
retry_after: Option<Duration>,
},
Transport(String),
}Expand description
Completion failures.
NotConfigured sits on the error enum here,
unlike SendOutcome::NotConfigured and
PushOutcome::NotConfigured: a completion has no
“delivered but not configured” middle state, so an unwired tier is an
error the caller matches, not an outcome it inspects.
Transient deliberately carries only retry_after, where
PushError::Transient also carries a message: with
no provider text of its own there is nothing to scrub, and provider text
belongs on Rejected and Transport.
The two variants that carry provider text are sanitized in Display,
the same way PushError’s and
MailError’s are (issue #235). What an adapter wraps
is the provider’s own words, and a prompt is exactly the kind of value
that rides back in them — a drafting module quotes a customer’s note, and
the provider’s 4xx quotes it straight back. Display therefore runs it
through crate::logging::scrub_text; Debug still shows the raw
string for tests.
Variants§
NotConfigured
The tier asked for has no adapter — the venture did not wire it.
Nothing is wrong with the prompt: a module may degrade, the way it
degrades on a NotConfigured mailer, and
RoutingTextModel answers this for every tier it has no
adapter for.
Rejected(String)
The provider refused the request (a 4xx), or refused the prompt’s
content or schema; not retryable without a change.
Transient
A transient failure (a 5xx, a 429, a transport error): retry
later, and not before retry_after when the provider named one.
Carries no message — provider text belongs on
Rejected and Transport.
Transport(String)
The request never completed as a conversation — the adapter could not reach the provider, or the answer did not survive the hop.
Implementations§
Source§impl TextModelError
impl TextModelError
Sourcepub fn retry_after(&self) -> Option<Duration>
pub fn retry_after(&self) -> Option<Duration>
How long the provider asked the caller to wait, where it said.
Trait Implementations§
Source§impl Clone for TextModelError
impl Clone for TextModelError
Source§impl Debug for TextModelError
impl Debug for TextModelError
Source§impl Display for TextModelError
impl Display for TextModelError
impl Eq for TextModelError
Source§impl Error for TextModelError
impl Error for TextModelError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Source§impl PartialEq for TextModelError
impl PartialEq for TextModelError
impl StructuralPartialEq for TextModelError
Auto Trait Implementations§
impl Freeze for TextModelError
impl RefUnwindSafe for TextModelError
impl Send for TextModelError
impl Sync for TextModelError
impl Unpin for TextModelError
impl UnsafeUnpin for TextModelError
impl UnwindSafe for TextModelError
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.