pub struct Tuple4<C1, C2, C3, C4>(pub C1, pub C2, pub C3, pub C4);Expand description
A 4-element tuple where all elements are contract types.
Tuple Fields§
§0: C1§1: C2§2: C3§3: C4Implementations§
Source§impl<C1, C2, C3, C4> Tuple4<C1, C2, C3, C4>
impl<C1, C2, C3, C4> Tuple4<C1, C2, C3, C4>
Sourcepub fn into_inner(self) -> (C1, C2, C3, C4)
pub fn into_inner(self) -> (C1, C2, C3, C4)
Unwrap into components.
Trait Implementations§
Source§impl<'de, C1, C2, C3, C4> Deserialize<'de> for Tuple4<C1, C2, C3, C4>
impl<'de, C1, C2, C3, C4> Deserialize<'de> for Tuple4<C1, C2, C3, C4>
Source§fn deserialize<D: Deserializer<'de>>(d: D) -> Result<Self, D::Error>
fn deserialize<D: Deserializer<'de>>(d: D) -> Result<Self, D::Error>
Deserialize this value from the given Serde deserializer. Read more
Source§impl<C1: ElicitComplete + Send, C2: ElicitComplete + Send, C3: ElicitComplete + Send, C4: ElicitComplete + Send> ElicitComplete for Tuple4<C1, C2, C3, C4>
impl<C1: ElicitComplete + Send, C2: ElicitComplete + Send, C3: ElicitComplete + Send, C4: ElicitComplete + Send> ElicitComplete for Tuple4<C1, C2, C3, C4>
Source§fn validate_proofs_non_empty() -> bool
fn validate_proofs_non_empty() -> bool
Runtime check: all three proof methods return non-empty TokenStreams. Read more
Source§fn kani_proof_contains<Inner: Elicitation>() -> bool
fn kani_proof_contains<Inner: Elicitation>() -> bool
Runtime check: does this type’s Kani proof contain
Inner’s Kani proof? Read moreSource§fn verus_proof_contains<Inner: Elicitation>() -> bool
fn verus_proof_contains<Inner: Elicitation>() -> bool
Runtime check: does this type’s Verus proof contain
Inner’s Verus proof?Source§fn creusot_proof_contains<Inner: Elicitation>() -> bool
fn creusot_proof_contains<Inner: Elicitation>() -> bool
Runtime check: does this type’s Creusot proof contain
Inner’s Creusot proof?Source§impl<C1, C2, C3, C4> ElicitIntrospect for Tuple4<C1, C2, C3, C4>where
C1: Elicitation + Send,
C2: Elicitation + Send,
C3: Elicitation + Send,
C4: Elicitation + Send,
impl<C1, C2, C3, C4> ElicitIntrospect for Tuple4<C1, C2, C3, C4>where
C1: Elicitation + Send,
C2: Elicitation + Send,
C3: Elicitation + Send,
C4: Elicitation + Send,
Source§fn pattern() -> ElicitationPattern
fn pattern() -> ElicitationPattern
What elicitation pattern does this type use? Read more
Source§fn metadata() -> TypeMetadata
fn metadata() -> TypeMetadata
Get the complete structural metadata for this type. Read more
Source§impl<A: ElicitPromptTree, B: ElicitPromptTree, C: ElicitPromptTree, D: ElicitPromptTree> ElicitPromptTree for Tuple4<A, B, C, D>
impl<A: ElicitPromptTree, B: ElicitPromptTree, C: ElicitPromptTree, D: ElicitPromptTree> ElicitPromptTree for Tuple4<A, B, C, D>
Source§fn prompt_tree() -> PromptTree
fn prompt_tree() -> PromptTree
Return the static prompt tree for this type. Read more
Source§fn assembled_prompts() -> Vec<AssembledPrompt>
fn assembled_prompts() -> Vec<AssembledPrompt>
Return the complete assembled prompts in elicitation order. Read more
Source§impl<C1: ElicitSpec, C2: ElicitSpec, C3: ElicitSpec, C4: ElicitSpec> ElicitSpec for Tuple4<C1, C2, C3, C4>
impl<C1: ElicitSpec, C2: ElicitSpec, C3: ElicitSpec, C4: ElicitSpec> ElicitSpec for Tuple4<C1, C2, C3, C4>
Source§impl<C1, C2, C3, C4> Elicitation for Tuple4<C1, C2, C3, C4>where
C1: Elicitation + Send,
C2: Elicitation + Send,
C3: Elicitation + Send,
C4: Elicitation + Send,
impl<C1, C2, C3, C4> Elicitation for Tuple4<C1, C2, C3, C4>where
C1: Elicitation + Send,
C2: Elicitation + Send,
C3: Elicitation + Send,
C4: Elicitation + Send,
Source§type Style = <(C1, C2, C3, C4) as Elicitation>::Style
type Style = <(C1, C2, C3, C4) as Elicitation>::Style
The style enum for this type. Read more
Source§async fn elicit<C: ElicitCommunicator>(communicator: &C) -> ElicitResult<Self>
async fn elicit<C: ElicitCommunicator>(communicator: &C) -> ElicitResult<Self>
Elicit a value of this type from the user via style-aware client. Read more
Source§fn kani_proof() -> TokenStream
fn kani_proof() -> TokenStream
Generate a Kani symbolic execution proof harness for this type. Read more
Source§fn verus_proof() -> TokenStream
fn verus_proof() -> TokenStream
Returns a
proc_macro2::TokenStream containing a Verus-verified function
with requires/ensures specifications for this type’s invariants. Read moreSource§fn creusot_proof() -> TokenStream
fn creusot_proof() -> TokenStream
Returns a
proc_macro2::TokenStream containing Creusot contract functions
with #[requires]/#[ensures]/#[trusted] attributes for this type’s invariants. Read moreSource§fn elicit_checked(
peer: Peer<RoleServer>,
) -> impl Future<Output = ElicitResult<Self>> + Send
fn elicit_checked( peer: Peer<RoleServer>, ) -> impl Future<Output = ElicitResult<Self>> + Send
Server-side elicitation via MCP peer. Read more
Source§fn with_style(style: Self::Style) -> ElicitBuilder<Self>
fn with_style(style: Self::Style) -> ElicitBuilder<Self>
Create a builder for one-off style override. Read more
Source§fn elicit_proven<C: ElicitCommunicator>(
communicator: &C,
) -> impl Future<Output = ElicitResult<(Self, Established<Is<Self>>)>> + Send
fn elicit_proven<C: ElicitCommunicator>( communicator: &C, ) -> impl Future<Output = ElicitResult<(Self, Established<Is<Self>>)>> + Send
Elicit a value with proof it inhabits type Self. Read more
Source§fn prusti_proof() -> TokenStream
fn prusti_proof() -> TokenStream
Returns a
proc_macro2::TokenStream containing Prusti contract functions
with #[requires]/#[ensures] attributes for this type’s invariants. Read moreSource§impl<C1, C2, C3, C4> JsonSchema for Tuple4<C1, C2, C3, C4>
impl<C1, C2, C3, C4> JsonSchema for Tuple4<C1, C2, C3, C4>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Generates a JSON Schema for this type. Read more
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
Whether JSON Schemas generated for this type should be included directly in parent schemas,
rather than being re-used where possible using the
$ref keyword. Read moreSource§impl<C1: PartialEq, C2: PartialEq, C3: PartialEq, C4: PartialEq> PartialEq for Tuple4<C1, C2, C3, C4>
impl<C1: PartialEq, C2: PartialEq, C3: PartialEq, C4: PartialEq> PartialEq for Tuple4<C1, C2, C3, C4>
Source§impl<C1, C2, C3, C4> Prompt for Tuple4<C1, C2, C3, C4>where
C1: Elicitation + Send,
C2: Elicitation + Send,
C3: Elicitation + Send,
C4: Elicitation + Send,
impl<C1, C2, C3, C4> Prompt for Tuple4<C1, C2, C3, C4>where
C1: Elicitation + Send,
C2: Elicitation + Send,
C3: Elicitation + Send,
C4: Elicitation + Send,
Source§impl<C1: ToCodeLiteral, C2: ToCodeLiteral, C3: ToCodeLiteral, C4: ToCodeLiteral> ToCodeLiteral for Tuple4<C1, C2, C3, C4>
impl<C1: ToCodeLiteral, C2: ToCodeLiteral, C3: ToCodeLiteral, C4: ToCodeLiteral> ToCodeLiteral for Tuple4<C1, C2, C3, C4>
Source§fn to_code_literal(&self) -> TokenStream
fn to_code_literal(&self) -> TokenStream
Return a
TokenStream containing a single Rust expression whose
evaluation produces a value equal to self.Source§fn type_tokens() -> TokenStreamwhere
Self: Sized,
fn type_tokens() -> TokenStreamwhere
Self: Sized,
Token stream for the concrete type name (used to annotate
None::<T>). Read moreimpl<C1: Eq, C2: Eq, C3: Eq, C4: Eq> Eq for Tuple4<C1, C2, C3, C4>
impl<C1, C2, C3, C4> StructuralPartialEq for Tuple4<C1, C2, C3, C4>
Auto Trait Implementations§
impl<C1, C2, C3, C4> Freeze for Tuple4<C1, C2, C3, C4>
impl<C1, C2, C3, C4> RefUnwindSafe for Tuple4<C1, C2, C3, C4>
impl<C1, C2, C3, C4> Send for Tuple4<C1, C2, C3, C4>
impl<C1, C2, C3, C4> Sync for Tuple4<C1, C2, C3, C4>
impl<C1, C2, C3, C4> Unpin for Tuple4<C1, C2, C3, C4>
impl<C1, C2, C3, C4> UnsafeUnpin for Tuple4<C1, C2, C3, C4>
impl<C1, C2, C3, C4> UnwindSafe for Tuple4<C1, C2, C3, C4>
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> ElicitJson for T
impl<T> ElicitJson for T
Source§async fn elicit_json<C>(communicator: &C) -> Result<T, ElicitError>where
C: ElicitCommunicator,
async fn elicit_json<C>(communicator: &C) -> Result<T, ElicitError>where
C: ElicitCommunicator,
Elicit a value by presenting the JSON schema and parsing the response.
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
Compare self to
key and return true if they are equal.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>
Converts
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>
Converts
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> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> WithContract for T
impl<T> WithContract for T
Source§fn with_contract<C>(contract: C) -> ContractedElicitation<Self, C>
fn with_contract<C>(contract: C) -> ContractedElicitation<Self, C>
Attach a contract to this type’s elicitation. Read more