pub struct DriverId(/* private fields */);Expand description
Open string identifier retained as the 0.17.x integration-kind name.
Despite the legacy type name, this is not a built-in-provider enum: any normalized string is valid. The associated constants keep source compatibility for the 0.17.x runtime adapter and persisted HTTP shapes.
Implementations§
Source§impl DriverId
impl DriverId
pub const OpenAI: DriverId
pub const OpenRouter: DriverId
pub const AzureOpenAI: DriverId
pub const OpenAICompletions: DriverId
pub const Anthropic: DriverId
pub const Gemini: DriverId
pub const LlmSim: DriverId
pub const Bedrock: DriverId
pub const Mai: DriverId
pub const Fireworks: DriverId
pub const Meta: DriverId
Sourcepub fn external(id: impl AsRef<str>) -> DriverId
pub fn external(id: impl AsRef<str>) -> DriverId
Construct an external driver id from its canonical wire id.
The id is normalized to lowercase so registration and lookup match case-insensitively, consistent with built-in parsing.
Sourcepub fn default_trace_templates(&self) -> (Option<String>, Option<String>)
pub fn default_trace_templates(&self) -> (Option<String>, Option<String>)
Default trace-link URL templates for this driver, as
(generation_url_template, session_url_template).
These are best-effort defaults for vendors that expose an observability
dashboard. They are only defaults: an org overrides them per provider
(ProviderTraceConfig) and must opt in via enabled, since most vendors
retain prompt/completion content only when logging is explicitly turned
on. Templates support the {response_id}, {session_id}, {turn_id}
and {model} placeholders.
OpenRouter stores logged generations on its Logs page (https://openrouter.ai/logs, gated behind the account’s “Input & Output Logging” Observability setting). OpenRouter does not document a public deep-link by generation id, so the generation template passes the id best-effort; worst case it lands on the Logs page where the generation can be found by recency.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for DriverId
impl<'de> Deserialize<'de> for DriverId
Source§fn deserialize<D>(d: D) -> Result<DriverId, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(d: D) -> Result<DriverId, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
impl Eq for DriverId
Source§impl Serialize for DriverId
impl Serialize for DriverId
Source§fn serialize<S>(
&self,
s: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>(
&self,
s: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
impl StructuralPartialEq for DriverId
Auto Trait Implementations§
impl Freeze for DriverId
impl RefUnwindSafe for DriverId
impl Send for DriverId
impl Sync for DriverId
impl Unpin for DriverId
impl UnsafeUnpin for DriverId
impl UnwindSafe for DriverId
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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.Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request