pub trait Clone: Sized {
// Required method
fn clone(&self) -> Self;
// Provided method
fn clone_from(&mut self, source: &Self) { ... }
}Expand description
A common trait that allows explicit creation of a duplicate value.
Calling clone always produces a new value.
However, for types that are references to other data (such as smart pointers or references),
the new value may still point to the same underlying data, rather than duplicating it.
See Clone::clone for more details.
This distinction is especially important when using #[derive(Clone)] on structs containing
smart pointers like Arc<Mutex<T>> - the cloned struct will share mutable state with the
original.
Differs from Copy in that Copy is implicit and an inexpensive bit-wise copy, while
Clone is always explicit and may or may not be expensive. In order to enforce
these characteristics, Rust does not allow you to reimplement Copy, but you
may reimplement Clone and run arbitrary code.
Since Clone is more general than Copy, you can automatically make anything
Copy be Clone as well.
§Derivable
This trait can be used with #[derive] if all fields are Clone. The derived
implementation of Clone calls clone on each field.
For a generic struct, #[derive] implements Clone conditionally by adding bound Clone on
generic parameters.
// `derive` implements Clone for Reading<T> when T is Clone.
#[derive(Clone)]
struct Reading<T> {
frequency: T,
}§How can I implement Clone?
Types that are Copy should have a trivial implementation of Clone. More formally:
if T: Copy, x: T, and y: &T, then let x = y.clone(); is equivalent to let x = *y;.
Manual implementations should be careful to uphold this invariant; however, unsafe code
must not rely on it to ensure memory safety.
An example is a generic struct holding a function pointer. In this case, the
implementation of Clone cannot be derived, but can be implemented as:
struct Generate<T>(fn() -> T);
impl<T> Copy for Generate<T> {}
impl<T> Clone for Generate<T> {
fn clone(&self) -> Self {
*self
}
}If we derive:
#[derive(Copy, Clone)]
struct Generate<T>(fn() -> T);the auto-derived implementations will have unnecessary T: Copy and T: Clone bounds:
// Automatically derived
impl<T: Copy> Copy for Generate<T> { }
// Automatically derived
impl<T: Clone> Clone for Generate<T> {
fn clone(&self) -> Generate<T> {
Generate(Clone::clone(&self.0))
}
}The bounds are unnecessary because clearly the function itself should be copy- and cloneable even if its return type is not:
#[derive(Copy, Clone)]
struct Generate<T>(fn() -> T);
struct NotCloneable;
fn generate_not_cloneable() -> NotCloneable {
NotCloneable
}
Generate(generate_not_cloneable).clone(); // error: trait bounds were not satisfied
// Note: With the manual implementations the above line will compile.§Clone and PartialEq/Eq
Clone is intended for the duplication of objects. Consequently, when implementing
both Clone and PartialEq, the following property is expected to hold:
x == x -> x.clone() == xIn other words, if an object compares equal to itself, its clone must also compare equal to the original.
For types that also implement Eq – for which x == x always holds –
this implies that x.clone() == x must always be true.
Standard library collections such as
HashMap, HashSet, BTreeMap, BTreeSet and BinaryHeap
rely on their keys respecting this property for correct behavior.
Furthermore, these collections require that cloning a key preserves the outcome of the
Hash and Ord methods. Thankfully, this follows automatically from x.clone() == x
if Hash and Ord are correctly implemented according to their own requirements.
When deriving both Clone and PartialEq using #[derive(Clone, PartialEq)]
or when additionally deriving Eq using #[derive(Clone, PartialEq, Eq)],
then this property is automatically upheld – provided that it is satisfied by
the underlying types.
Violating this property is a logic error. The behavior resulting from a logic error is not
specified, but users of the trait must ensure that such logic errors do not result in
undefined behavior. This means that unsafe code must not rely on this property
being satisfied.
§Additional implementors
In addition to the implementors listed below,
the following types also implement Clone:
- Function item types (i.e., the distinct types defined for each function)
- Function pointer types (e.g.,
fn() -> i32) - Closure types, if they capture no value from the environment
or if all such captured values implement
Clonethemselves. Note that variables captured by shared reference always implementClone(even if the referent doesn’t), while variables captured by mutable reference never implementClone.
Required Methods§
1.0.0 · Sourcefn clone(&self) -> Self
fn clone(&self) -> Self
Returns a duplicate of the value.
Note that what “duplicate” means varies by type:
- For most types, this creates a deep, independent copy
- For reference types like
&T, this creates another reference to the same value - For smart pointers like
ArcorRc, this increments the reference count but still points to the same underlying data
§Examples
let hello = "Hello"; // &str implements Clone
assert_eq!("Hello", hello.clone());Example with a reference-counted type:
use std::sync::{Arc, Mutex};
let data = Arc::new(Mutex::new(vec![1, 2, 3]));
let data_clone = data.clone(); // Creates another Arc pointing to the same Mutex
{
let mut lock = data.lock().unwrap();
lock.push(4);
}
// Changes are visible through the clone because they share the same underlying data
assert_eq!(*data_clone.lock().unwrap(), vec![1, 2, 3, 4]);Provided Methods§
1.0.0 · Sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source.
a.clone_from(&b) is equivalent to a = b.clone() in functionality,
but can be overridden to reuse the resources of a to avoid unnecessary
allocations.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.
Implementors§
impl Clone for AsciiChar
impl Clone for llm_tools::ser::core::cmp::Ordering
impl Clone for Infallible
impl Clone for FromBytesWithNulError
impl Clone for llm_tools::ser::core::fmt::Alignment
impl Clone for DebugAsHex
impl Clone for Sign
impl Clone for llm_tools::ser::core::net::IpAddr
impl Clone for Ipv6MulticastScope
impl Clone for SocketAddr
impl Clone for FpCategory
impl Clone for IntErrorKind
impl Clone for llm_tools::ser::core::slice::GetDisjointMutError
impl Clone for SearchStep
impl Clone for llm_tools::ser::core::sync::atomic::Ordering
impl Clone for TryReserveErrorKind
impl Clone for VarError
impl Clone for SeekFrom
impl Clone for ErrorKind
impl Clone for Shutdown
impl Clone for BacktraceStyle
impl Clone for RecvTimeoutError
impl Clone for std::sync::mpsc::TryRecvError
impl Clone for base64::decode::DecodeError
impl Clone for DecodeSliceError
impl Clone for EncodeSliceError
impl Clone for DecodePaddingMode
impl Clone for byteorder::BigEndian
impl Clone for byteorder::LittleEndian
impl Clone for BitOrder
impl Clone for DecodeKind
impl Clone for TruncSide
impl Clone for LineType
impl Clone for PollNext
impl Clone for hashbrown::TryReserveError
impl Clone for httparse::Error
impl Clone for TrieResult
impl Clone for TrieType
impl Clone for icu_collections::codepointtrie::error::Error
impl Clone for ExtensionType
impl Clone for icu_locale_core::parser::errors::ParseError
impl Clone for BidiPairedBracketType
impl Clone for GeneralCategory
impl Clone for BufferFormat
impl Clone for DataErrorKind
impl Clone for DnsLength
impl Clone for ErrorPolicy
impl Clone for Hyphens
impl Clone for ProcessingError
impl Clone for ProcessingSuccess
impl Clone for indexmap::GetDisjointMutError
impl Clone for IpAddrRange
impl Clone for IpNet
impl Clone for IpSubnets
impl Clone for IriSpec
impl Clone for UriSpec
impl Clone for VisitPurpose
impl Clone for iri_string::template::simple_context::Value
impl Clone for log::Level
impl Clone for log::LevelFilter
impl Clone for PrefilterConfig
impl Clone for native_tls::Protocol
impl Clone for ServerEvent
impl Clone for AudioFormat
impl Clone for ContentPart
impl Clone for FunctionType
impl Clone for IncompleteReason
impl Clone for ItemContentType
impl Clone for ItemRole
impl Clone for ItemStatus
impl Clone for ItemType
impl Clone for MaxOutputTokens
impl Clone for RealtimeVoice
impl Clone for ResponseStatus
impl Clone for ResponseStatusDetail
impl Clone for ToolChoice
impl Clone for ToolDefinition
impl Clone for TurnDetection
impl Clone for FileSearchRanker
impl Clone for Tools
impl Clone for openai_api_rs::v1::chat_completion::Content
impl Clone for ContentType
impl Clone for openai_api_rs::v1::chat_completion::MessageRole
impl Clone for ToolChoiceType
impl Clone for ToolType
impl Clone for openai_api_rs::v1::message::MessageRole
impl Clone for openai_api_rs::v1::thread::MessageRole
impl Clone for JSONSchemaType
impl Clone for OnceState
impl Clone for FilterOp
impl Clone for ParkResult
impl Clone for RequeueOp
impl Clone for BernoulliError
impl Clone for WeightedError
impl Clone for IndexVec
impl Clone for IndexVecIntoIter
impl Clone for Primitive
impl Clone for SectionKind
impl Clone for rustls_pki_types::server_name::IpAddr
impl Clone for Algorithm
impl Clone for Direction
impl Clone for schannel::schannel_cred::Protocol
impl Clone for Category
impl Clone for serde_json::value::Value
impl Clone for serde_urlencoded::ser::Error
impl Clone for slab::GetDisjointMutError
impl Clone for InterfaceIndexOrAddress
impl Clone for Connector
impl Clone for PipeEnd
impl Clone for PipeMode
impl Clone for tokio::sync::broadcast::error::RecvError
impl Clone for tokio::sync::broadcast::error::TryRecvError
impl Clone for tokio::sync::mpsc::error::TryRecvError
impl Clone for tokio::sync::oneshot::error::TryRecvError
impl Clone for MissedTickBehavior
impl Clone for GrpcCode
impl Clone for LatencyUnit
impl Clone for Action
impl Clone for CapacityError
impl Clone for ProtocolError
impl Clone for SubProtocolError
impl Clone for Role
impl Clone for CloseCode
impl Clone for Control
impl Clone for Data
impl Clone for OpCode
impl Clone for tungstenite::protocol::message::Message
impl Clone for Mode
impl Clone for Origin
impl Clone for url::parser::ParseError
impl Clone for SyntaxViolation
impl Clone for Position
impl Clone for zerocopy::byteorder::BigEndian
impl Clone for zerocopy::byteorder::LittleEndian
impl Clone for ZeroTrieBuildError
impl Clone for UleError
impl Clone for bool
impl Clone for char
impl Clone for f16
impl Clone for f32
impl Clone for f64
impl Clone for f128
impl Clone for i8
impl Clone for i16
impl Clone for i32
impl Clone for i64
impl Clone for i128
impl Clone for isize
impl Clone for !
impl Clone for u8
impl Clone for u16
impl Clone for u32
impl Clone for u64
impl Clone for u128
impl Clone for usize
impl Clone for AssistantObjectWrap
Manually implemented Clone, as FileData does not implement it.
impl Clone for FileDataWrap
Manually implemented Clone, as FileData does not implement it.
impl Clone for RunObjectWrap
Manually implemented Clone, as RunObject does not implement it.
impl Clone for IgnoredAny
impl Clone for llm_tools::ser::serde::de::value::Error
impl Clone for llm_tools::ser::core::alloc::AllocError
impl Clone for Layout
impl Clone for LayoutError
impl Clone for TypeId
impl Clone for CpuidResult
impl Clone for __m128
impl Clone for __m128bh
impl Clone for __m128d
impl Clone for __m128h
impl Clone for __m128i
impl Clone for __m256
impl Clone for __m256bh
impl Clone for __m256d
impl Clone for __m256h
impl Clone for __m256i
impl Clone for __m512
impl Clone for __m512bh
impl Clone for __m512d
impl Clone for __m512h
impl Clone for __m512i
impl Clone for bf16
impl Clone for TryFromSliceError
impl Clone for llm_tools::ser::core::ascii::EscapeDefault
impl Clone for CharTryFromError
impl Clone for DecodeUtf16Error
impl Clone for llm_tools::ser::core::char::EscapeDebug
impl Clone for llm_tools::ser::core::char::EscapeDefault
impl Clone for llm_tools::ser::core::char::EscapeUnicode
impl Clone for ParseCharError
impl Clone for ToLowercase
impl Clone for ToUppercase
impl Clone for TryFromCharError
impl Clone for FromBytesUntilNulError
impl Clone for llm_tools::ser::core::fmt::Error
impl Clone for FormattingOptions
impl Clone for SipHasher
impl Clone for PhantomPinned
impl Clone for Assume
impl Clone for llm_tools::ser::core::net::AddrParseError
impl Clone for llm_tools::ser::core::net::Ipv4Addr
impl Clone for llm_tools::ser::core::net::Ipv6Addr
impl Clone for SocketAddrV4
impl Clone for SocketAddrV6
impl Clone for ParseFloatError
impl Clone for ParseIntError
impl Clone for TryFromIntError
impl Clone for RangeFull
impl Clone for llm_tools::ser::core::ptr::Alignment
impl Clone for ParseBoolError
impl Clone for Utf8Error
impl Clone for LocalWaker
impl Clone for RawWakerVTable
impl Clone for Waker
impl Clone for Duration
impl Clone for TryFromFloatSecsError
impl Clone for Global
impl Clone for Box<str>
impl Clone for Box<ByteStr>
impl Clone for Box<CStr>
impl Clone for Box<OsStr>
impl Clone for Box<Path>
impl Clone for Box<Utf8Path>
impl Clone for Box<dyn DynDigest>
impl Clone for Box<dyn AnyClone + Sync + Send>
impl Clone for ByteString
impl Clone for UnorderedKeyError
impl Clone for alloc::collections::TryReserveError
impl Clone for CString
impl Clone for FromVecWithNulError
impl Clone for IntoStringError
impl Clone for NulError
impl Clone for FromUtf8Error
impl Clone for IntoChars
impl Clone for String
impl Clone for System
impl Clone for OsString
impl Clone for FileTimes
impl Clone for FileType
impl Clone for std::fs::Metadata
impl Clone for std::fs::OpenOptions
impl Clone for Permissions
impl Clone for DefaultHasher
impl Clone for RandomState
impl Clone for std::io::util::Empty
impl Clone for Sink
impl Clone for InvalidHandleError
impl Clone for NullHandleError
impl Clone for PathBuf
impl Clone for StripPrefixError
impl Clone for ExitCode
impl Clone for ExitStatus
impl Clone for ExitStatusError
impl Clone for Output
impl Clone for DefaultRandomSource
impl Clone for std::sync::mpsc::RecvError
impl Clone for std::sync::poison::condvar::WaitTimeoutResult
impl Clone for AccessError
impl Clone for Thread
impl Clone for ThreadId
impl Clone for std::time::Instant
impl Clone for SystemTime
impl Clone for SystemTimeError
impl Clone for Alphabet
impl Clone for GeneralPurpose
impl Clone for GeneralPurposeConfig
impl Clone for Eager
impl Clone for block_buffer::Error
impl Clone for Lazy
impl Clone for bytes::bytes::Bytes
impl Clone for BytesMut
impl Clone for FromPathBufError
impl Clone for FromPathError
impl Clone for Utf8PathBuf
impl Clone for InvalidLength
impl Clone for data_encoding::DecodeError
impl Clone for DecodePartial
impl Clone for Encoding
impl Clone for Specification
impl Clone for SpecificationError
impl Clone for Translate
impl Clone for Wrap
impl Clone for InvalidBufferSize
impl Clone for InvalidOutputSize
impl Clone for All
impl Clone for None
impl Clone for TestObjectWithoutImpl
impl Clone for WithDebug
impl Clone for WithDebugMultiline
impl Clone for WithDisplay
impl Clone for WithRef
impl Clone for WithWell
impl Clone for futures_channel::mpsc::SendError
impl Clone for Canceled
impl Clone for futures_util::abortable::AbortHandle
impl Clone for Aborted
impl Clone for getrandom::error::Error
impl Clone for h2::client::Builder
impl Clone for h2::ext::Protocol
impl Clone for Reason
impl Clone for h2::server::Builder
impl Clone for FlowControl
impl Clone for StreamId
impl Clone for SizeHint
impl Clone for http::extensions::Extensions
impl Clone for HeaderName
impl Clone for HeaderValue
impl Clone for Method
impl Clone for http::request::Parts
impl Clone for http::response::Parts
impl Clone for StatusCode
impl Clone for Authority
impl Clone for PathAndQuery
impl Clone for Scheme
impl Clone for Uri
impl Clone for http::version::Version
impl Clone for ParserConfig
impl Clone for hyper_util::client::legacy::client::Builder
impl Clone for CaptureConnection
impl Clone for GaiResolver
impl Clone for hyper_util::client::legacy::connect::dns::Name
impl Clone for HttpInfo
impl Clone for Intercept
impl Clone for TokioExecutor
impl Clone for TokioTimer
impl Clone for hyper::client::conn::http1::Builder
impl Clone for ReasonPhrase
impl Clone for hyper::ext::Protocol
impl Clone for OnUpgrade
impl Clone for CodePointTrieHeader
impl Clone for DataLocale
impl Clone for Other
impl Clone for icu_locale_core::extensions::private::other::Subtag
impl Clone for Private
impl Clone for icu_locale_core::extensions::Extensions
impl Clone for Fields
impl Clone for icu_locale_core::extensions::transform::key::Key
impl Clone for Transform
impl Clone for icu_locale_core::extensions::transform::value::Value
impl Clone for Attribute
impl Clone for Attributes
impl Clone for icu_locale_core::extensions::unicode::key::Key
impl Clone for Keywords
impl Clone for Unicode
impl Clone for SubdivisionId
impl Clone for SubdivisionSuffix
impl Clone for icu_locale_core::extensions::unicode::value::Value
impl Clone for LanguageIdentifier
impl Clone for Locale
impl Clone for CurrencyType
impl Clone for NumberingSystem
impl Clone for RegionOverride
impl Clone for RegionalSubdivision
impl Clone for TimeZoneShortId
impl Clone for LocalePreferences
impl Clone for Language
impl Clone for Region
impl Clone for icu_locale_core::subtags::script::Script
impl Clone for icu_locale_core::subtags::Subtag
impl Clone for Variant
impl Clone for Variants
impl Clone for BidiMirroringGlyph
impl Clone for GeneralCategoryULE
impl Clone for icu_properties::props::BidiClass
impl Clone for CanonicalCombiningClass
impl Clone for EastAsianWidth
impl Clone for GeneralCategoryGroup
impl Clone for GeneralCategoryOutOfBoundsError
impl Clone for GraphemeClusterBreak
impl Clone for HangulSyllableType
impl Clone for IndicSyllabicCategory
impl Clone for icu_properties::props::JoiningType
impl Clone for LineBreak
impl Clone for icu_properties::props::Script
impl Clone for SentenceBreak
impl Clone for VerticalOrientation
impl Clone for WordBreak
impl Clone for DataError
impl Clone for DataMarkerId
impl Clone for DataMarkerIdHash
impl Clone for DataMarkerInfo
impl Clone for DataRequestMetadata
impl Clone for Cart
impl Clone for DataResponseMetadata
impl Clone for Config
impl Clone for AsciiDenyList
impl Clone for idna_adapter::BidiClass
impl Clone for BidiClassMask
impl Clone for idna_adapter::JoiningType
impl Clone for JoiningTypeMask
impl Clone for indexmap::TryReserveError
impl Clone for Ipv4AddrRange
impl Clone for Ipv6AddrRange
impl Clone for Ipv4Net
impl Clone for Ipv4Subnets
impl Clone for Ipv6Net
impl Clone for Ipv6Subnets
impl Clone for PrefixLenError
impl Clone for ipnet::parser::AddrParseError
impl Clone for CapacityOverflowError
impl Clone for iri_string::normalize::error::Error
impl Clone for iri_string::template::error::Error
impl Clone for SimpleContext
impl Clone for UriTemplateString
impl Clone for iri_string::validate::Error
impl Clone for itoa::Buffer
impl Clone for One
impl Clone for Three
impl Clone for Two
impl Clone for memchr::arch::all::packedpair::Finder
impl Clone for Pair
impl Clone for memchr::arch::all::rabinkarp::Finder
impl Clone for memchr::arch::all::rabinkarp::FinderRev
impl Clone for memchr::arch::all::twoway::Finder
impl Clone for memchr::arch::all::twoway::FinderRev
impl Clone for FinderBuilder
impl Clone for Mime
impl Clone for mime_guess::Iter
impl Clone for IterRaw
impl Clone for MimeGuess
impl Clone for Event
impl Clone for mio::interest::Interest
impl Clone for Token
impl Clone for native_tls::Certificate
impl Clone for native_tls::Identity
impl Clone for native_tls::TlsAcceptor
impl Clone for native_tls::TlsConnector
impl Clone for ConversationItemCreate
impl Clone for ConversationItemDelete
impl Clone for ConversationItemTruncate
impl Clone for InputAudioBufferAppend
impl Clone for InputAudioBufferClear
impl Clone for InputAudioBufferCommit
impl Clone for ResponseCancel
impl Clone for ResponseCreate
impl Clone for SessionUpdate
impl Clone for ConversationCreated
impl Clone for ConversationItemCreated
impl Clone for ConversationItemDeleted
impl Clone for ConversationItemInputAudioTranscriptionCompleted
impl Clone for ConversationItemInputAudioTranscriptionFailed
impl Clone for ConversationItemTruncated
impl Clone for openai_api_rs::realtime::server_event::Error
impl Clone for InputAudioBufferCleared
impl Clone for InputAudioBufferCommited
impl Clone for InputAudioBufferSpeechStarted
impl Clone for InputAudioBufferSpeechStopped
impl Clone for RateLimitsUpdated
impl Clone for ResponseAudioDelta
impl Clone for ResponseAudioDone
impl Clone for ResponseAudioTranscriptDelta
impl Clone for ResponseAudioTranscriptDone
impl Clone for ResponseContentPartAdded
impl Clone for ResponseContentPartDone
impl Clone for ResponseCreated
impl Clone for ResponseDone
impl Clone for ResponseFunctionCallArgumentsDelta
impl Clone for ResponseFunctionCallArgumentsDone
impl Clone for ResponseOutputItemAdded
impl Clone for ResponseOutputItemDone
impl Clone for ResponseTextDelta
impl Clone for ResponseTextDone
impl Clone for SessionCreated
impl Clone for SessionUpdated
impl Clone for APIError
impl Clone for AudioTranscription
impl Clone for Conversation
impl Clone for FailedError
impl Clone for Item
impl Clone for ItemContent
impl Clone for RateLimit
impl Clone for openai_api_rs::realtime::types::Response
impl Clone for Session
impl Clone for Usage
impl Clone for AssistantFileRequest
impl Clone for AssistantRequest
impl Clone for openai_api_rs::v1::assistant::CodeInterpreter
impl Clone for openai_api_rs::v1::assistant::FileSearch
impl Clone for FileSearchRankingOptions
impl Clone for openai_api_rs::v1::assistant::ToolResource
impl Clone for ToolsFileSearch
impl Clone for ToolsFileSearchObject
impl Clone for ToolsFunction
impl Clone for openai_api_rs::v1::assistant::VectorStores
impl Clone for AudioSpeechRequest
impl Clone for AudioTranscriptionRequest
impl Clone for AudioTranslationRequest
impl Clone for ChatCompletionMessage
impl Clone for ChatCompletionRequest
impl Clone for ImageUrl
impl Clone for ImageUrlType
impl Clone for openai_api_rs::v1::chat_completion::Tool
impl Clone for ToolCall
impl Clone for ToolCallFunction
impl Clone for CompletionRequest
impl Clone for EditRequest
impl Clone for EmbeddingRequest
impl Clone for CreateFineTuningJobRequest
impl Clone for HyperParameters
impl Clone for ImageEditRequest
impl Clone for ImageGenerationRequest
impl Clone for ImageVariationRequest
impl Clone for openai_api_rs::v1::message::Attachment
impl Clone for CreateMessageRequest
impl Clone for ModifyMessageRequest
impl Clone for openai_api_rs::v1::message::Tool
impl Clone for CreateModerationRequest
impl Clone for CreateRunRequest
impl Clone for CreateThreadAndRunRequest
impl Clone for LastError
impl Clone for ListRunStep
impl Clone for ModifyRunRequest
impl Clone for RunStepObject
impl Clone for openai_api_rs::v1::thread::Attachment
impl Clone for openai_api_rs::v1::thread::CodeInterpreter
impl Clone for openai_api_rs::v1::thread::Content
impl Clone for ContentText
impl Clone for CreateThreadRequest
impl Clone for openai_api_rs::v1::thread::FileSearch
impl Clone for openai_api_rs::v1::thread::Message
impl Clone for ModifyThreadRequest
impl Clone for openai_api_rs::v1::thread::Tool
impl Clone for openai_api_rs::v1::thread::ToolResource
impl Clone for openai_api_rs::v1::thread::VectorStores
impl Clone for Function
impl Clone for FunctionParameters
impl Clone for JSONSchemaDefine
impl Clone for parking_lot::condvar::WaitTimeoutResult
impl Clone for ParkToken
impl Clone for UnparkResult
impl Clone for UnparkToken
impl Clone for PotentialCodePoint
impl Clone for G0
impl Clone for G1
impl Clone for GenericMachine
impl Clone for u32x4_generic
impl Clone for u64x2_generic
impl Clone for u128x1_generic
impl Clone for vec256_storage
impl Clone for vec512_storage
impl Clone for AbsolutePath
impl Clone for CanonicalPath
impl Clone for CurrentPath
impl Clone for NativePath
impl Clone for Bernoulli
impl Clone for Open01
impl Clone for OpenClosed01
impl Clone for Alphanumeric
impl Clone for Standard
impl Clone for UniformChar
impl Clone for UniformDuration
impl Clone for StepRng
impl Clone for StdRng
impl Clone for ThreadRng
impl Clone for ChaCha8Core
impl Clone for ChaCha8Rng
impl Clone for ChaCha12Core
impl Clone for ChaCha12Rng
impl Clone for ChaCha20Core
impl Clone for ChaCha20Rng
impl Clone for OsRng
impl Clone for reqwest::async_impl::client::Client
impl Clone for NoProxy
impl Clone for Proxy
impl Clone for reqwest::tls::Certificate
impl Clone for reqwest::tls::Identity
impl Clone for TlsInfo
impl Clone for reqwest::tls::Version
impl Clone for AlgorithmIdentifier
impl Clone for rustls_pki_types::server_name::AddrParseError
impl Clone for rustls_pki_types::server_name::Ipv4Addr
impl Clone for rustls_pki_types::server_name::Ipv6Addr
impl Clone for InvalidSignature
impl Clone for UnixTime
impl Clone for ryu::buffer::Buffer
impl Clone for CertChainContext
impl Clone for CertContext
impl Clone for HashAlgorithm
impl Clone for KeySpec
impl Clone for CertStore
impl Clone for ProviderType
impl Clone for SchannelCred
impl Clone for serde_json::map::Map<String, Value>
impl Clone for Number
impl Clone for CompactFormatter
impl Clone for Sha1Core
impl Clone for SockAddr
impl Clone for Domain
impl Clone for socket2::Protocol
impl Clone for RecvFlags
impl Clone for TcpKeepalive
impl Clone for Type
impl Clone for tokio_native_tls::TlsAcceptor
impl Clone for tokio_native_tls::TlsConnector
impl Clone for AnyDelimiterCodec
impl Clone for BytesCodec
impl Clone for tokio_util::codec::length_delimited::Builder
impl Clone for LengthDelimitedCodec
impl Clone for LinesCodec
impl Clone for CancellationToken
impl Clone for PollSemaphore
impl Clone for tokio::fs::open_options::OpenOptions
impl Clone for tokio::io::interest::Interest
impl Clone for tokio::io::ready::Ready
impl Clone for ClientOptions
impl Clone for PipeInfo
impl Clone for ServerOptions
impl Clone for Handle
impl Clone for RuntimeMetrics
impl Clone for tokio::runtime::task::abort::AbortHandle
impl Clone for tokio::runtime::task::id::Id
impl Clone for BarrierWaitResult
impl Clone for tokio::sync::oneshot::error::RecvError
impl Clone for tokio::sync::watch::error::RecvError
impl Clone for tokio::time::error::Error
impl Clone for tokio::time::instant::Instant
impl Clone for GrpcEosErrorsAsFailures
impl Clone for GrpcErrorsAsFailures
impl Clone for StatusInRangeAsFailures
impl Clone for ServerErrorsAsFailures
impl Clone for FilterCredentials
impl Clone for tower_http::follow_redirect::policy::limited::Limited
impl Clone for SameOrigin
impl Clone for RequestUri
impl Clone for tower_layer::identity::Identity
impl Clone for TimeoutLayer
impl Clone for Identifier
impl Clone for Dispatch
impl Clone for WeakDispatch
impl Clone for Field
impl Clone for Kind
impl Clone for tracing_core::metadata::Level
impl Clone for tracing_core::metadata::LevelFilter
impl Clone for ParseLevelFilterError
impl Clone for tracing_core::span::Id
impl Clone for tracing_core::subscriber::Interest
impl Clone for NoSubscriber
impl Clone for Span
impl Clone for ClientRequestBuilder
impl Clone for NoCallback
impl Clone for Frame
impl Clone for FrameHeader
impl Clone for WebSocketConfig
impl Clone for ATerm
impl Clone for B0
impl Clone for B1
impl Clone for Z0
impl Clone for Equal
impl Clone for Greater
impl Clone for Less
impl Clone for UTerm
impl Clone for OpaqueOrigin
impl Clone for Url
impl Clone for Incomplete
impl Clone for LengthHint
impl Clone for Part
impl Clone for zerocopy::error::AllocError
impl Clone for AsciiProbeResult
impl Clone for CharULE
impl Clone for Index8
impl Clone for Index16
impl Clone for Index32
impl Clone for vec128_storage
impl<'a> Clone for Unexpected<'a>
impl<'a> Clone for Utf8Pattern<'a>
impl<'a> Clone for Component<'a>
impl<'a> Clone for Prefix<'a>
impl<'a> Clone for Utf8Component<'a>
impl<'a> Clone for Utf8Prefix<'a>
impl<'a> Clone for ServerName<'a>
impl<'a> Clone for utf8::DecodeError<'a>
impl<'a> Clone for Source<'a>
impl<'a> Clone for llm_tools::ser::core::ffi::c_str::Bytes<'a>
impl<'a> Clone for Arguments<'a>
impl<'a> Clone for PhantomContravariantLifetime<'a>
impl<'a> Clone for PhantomCovariantLifetime<'a>
impl<'a> Clone for PhantomInvariantLifetime<'a>
impl<'a> Clone for Location<'a>
impl<'a> Clone for EscapeAscii<'a>
impl<'a> Clone for CharSearcher<'a>
impl<'a> Clone for llm_tools::ser::core::str::Bytes<'a>
impl<'a> Clone for CharIndices<'a>
impl<'a> Clone for Chars<'a>
impl<'a> Clone for EncodeUtf16<'a>
impl<'a> Clone for llm_tools::ser::core::str::EscapeDebug<'a>
impl<'a> Clone for llm_tools::ser::core::str::EscapeDefault<'a>
impl<'a> Clone for llm_tools::ser::core::str::EscapeUnicode<'a>
impl<'a> Clone for Lines<'a>
impl<'a> Clone for LinesAny<'a>
impl<'a> Clone for SplitAsciiWhitespace<'a>
impl<'a> Clone for SplitWhitespace<'a>
impl<'a> Clone for Utf8Chunk<'a>
impl<'a> Clone for Utf8Chunks<'a>
impl<'a> Clone for IoSlice<'a>
impl<'a> Clone for ProcThreadAttributeListBuilder<'a>
impl<'a> Clone for Ancestors<'a>
impl<'a> Clone for Components<'a>
impl<'a> Clone for std::path::Iter<'a>
impl<'a> Clone for PrefixComponent<'a>
impl<'a> Clone for EncodeWide<'a>
impl<'a> Clone for anyhow::Chain<'a>
impl<'a> Clone for camino::Iter<'a>
impl<'a> Clone for Utf8Ancestors<'a>
impl<'a> Clone for Utf8Components<'a>
impl<'a> Clone for Utf8PrefixComponent<'a>
impl<'a> Clone for Parse<'a>
impl<'a> Clone for Header<'a>
impl<'a> Clone for Char16TrieIterator<'a>
impl<'a> Clone for CanonicalCompositionBorrowed<'a>
impl<'a> Clone for CodePointSetDataBorrowed<'a>
impl<'a> Clone for EmojiSetDataBorrowed<'a>
impl<'a> Clone for ScriptExtensionsSet<'a>
impl<'a> Clone for ScriptWithExtensionsBorrowed<'a>
impl<'a> Clone for DataIdentifierBorrowed<'a>
impl<'a> Clone for DataRequest<'a>
impl<'a> Clone for iri_string::build::Builder<'a>
impl<'a> Clone for PortBuilder<'a>
impl<'a> Clone for UserinfoBuilder<'a>
impl<'a> Clone for AuthorityComponents<'a>
impl<'a> Clone for VarName<'a>
impl<'a> Clone for UriTemplateVariables<'a>
impl<'a> Clone for log::Metadata<'a>
impl<'a> Clone for Record<'a>
impl<'a> Clone for MimeIter<'a>
impl<'a> Clone for mime::Name<'a>
impl<'a> Clone for mio::event::events::Iter<'a>
impl<'a> Clone for PercentDecode<'a>
impl<'a> Clone for PercentEncode<'a>
impl<'a> Clone for DnsName<'a>
impl<'a> Clone for CertificateDer<'a>
impl<'a> Clone for CertificateRevocationListDer<'a>
impl<'a> Clone for CertificateSigningRequestDer<'a>
impl<'a> Clone for Der<'a>
impl<'a> Clone for EchConfigListBytes<'a>
impl<'a> Clone for SubjectPublicKeyInfoDer<'a>
impl<'a> Clone for TrustAnchor<'a>
impl<'a> Clone for PrettyFormatter<'a>
impl<'a> Clone for ParseOptions<'a>
impl<'a> Clone for Utf8CharIndices<'a>
impl<'a> Clone for ErrorReportingUtf8Chars<'a>
impl<'a> Clone for Utf8Chars<'a>
impl<'a> Clone for ZeroAsciiIgnoreCaseTrieCursor<'a>
impl<'a> Clone for ZeroTrieSimpleAsciiCursor<'a>
impl<'a, 'b> Clone for CharSliceSearcher<'a, 'b>
impl<'a, 'b> Clone for StrSearcher<'a, 'b>
impl<'a, 'b, const N: usize> Clone for CharArrayRefSearcher<'a, 'b, N>
impl<'a, 'h> Clone for OneIter<'a, 'h>
impl<'a, 'h> Clone for ThreeIter<'a, 'h>
impl<'a, 'h> Clone for TwoIter<'a, 'h>
impl<'a, E> Clone for BytesDeserializer<'a, E>
impl<'a, E> Clone for CowStrDeserializer<'a, E>
impl<'a, F> Clone for CharPredicateSearcher<'a, F>
impl<'a, K0, K1, V> Clone for ZeroMap2dBorrowed<'a, K0, K1, V>
impl<'a, K0, K1, V> Clone for ZeroMap2d<'a, K0, K1, V>
impl<'a, K> Clone for alloc::collections::btree::set::Cursor<'a, K>where
K: Clone + 'a,
impl<'a, K, V> Clone for ZeroMapBorrowed<'a, K, V>
impl<'a, K, V> Clone for ZeroMap<'a, K, V>
impl<'a, P> Clone for MatchIndices<'a, P>
impl<'a, P> Clone for Matches<'a, P>
impl<'a, P> Clone for RMatchIndices<'a, P>
impl<'a, P> Clone for RMatches<'a, P>
impl<'a, P> Clone for llm_tools::ser::core::str::RSplit<'a, P>
impl<'a, P> Clone for RSplitN<'a, P>
impl<'a, P> Clone for RSplitTerminator<'a, P>
impl<'a, P> Clone for llm_tools::ser::core::str::Split<'a, P>
impl<'a, P> Clone for llm_tools::ser::core::str::SplitInclusive<'a, P>
impl<'a, P> Clone for SplitN<'a, P>
impl<'a, P> Clone for SplitTerminator<'a, P>
impl<'a, S> Clone for FixedBaseResolver<'a, S>
impl<'a, S, C> Clone for Expanded<'a, S, C>
impl<'a, Src> Clone for MappedToUri<'a, Src>
impl<'a, T> Clone for RChunksExact<'a, T>
impl<'a, T> Clone for hashbrown::table::Iter<'a, T>
impl<'a, T> Clone for IterHash<'a, T>
impl<'a, T> Clone for CodePointMapDataBorrowed<'a, T>
impl<'a, T> Clone for PasswordMasked<'a, T>
impl<'a, T> Clone for Slice<'a, T>where
T: Clone,
impl<'a, T> Clone for ZeroVec<'a, T>where
T: AsULE,
impl<'a, T, F> Clone for VarZeroVec<'a, T, F>where
T: ?Sized,
impl<'a, T, How, Fallback1, Fallback2> Clone for Ref2<'a, T, How, Fallback1, Fallback2>
impl<'a, T, How, Fallback1, Fallback2> Clone for Ref3<'a, T, How, Fallback1, Fallback2>
impl<'a, T, How, Fallback1, Fallback2> Clone for format_tools::format::to_string_with_fallback::aref::Ref<'a, T, How, Fallback1, Fallback2>
impl<'a, T, I> Clone for Ptr<'a, T, I>where
T: 'a + ?Sized,
I: Invariants<Aliasing = Shared>,
SAFETY: See the safety comment on Copy.
impl<'a, T, Marker> Clone for OptionalCow<'a, T, Marker>
impl<'a, T, P> Clone for ChunkBy<'a, T, P>where
T: 'a,
P: Clone,
impl<'a, T, const N: usize> Clone for ArrayWindows<'a, T, N>where
T: Clone + 'a,
impl<'a, V> Clone for VarZeroCow<'a, V>where
V: ?Sized,
impl<'a, const N: usize> Clone for CharArraySearcher<'a, N>
impl<'data> Clone for PropertyCodePointSet<'data>
impl<'data> Clone for PropertyUnicodeSet<'data>
impl<'data> Clone for Char16Trie<'data>
impl<'data> Clone for CodePointInversionList<'data>
impl<'data> Clone for CodePointInversionListAndStringList<'data>
impl<'data> Clone for CanonicalCompositions<'data>
impl<'data> Clone for DecompositionData<'data>
impl<'data> Clone for DecompositionTables<'data>
impl<'data> Clone for NonRecursiveDecompositionSupplement<'data>
impl<'data> Clone for PropertyEnumToValueNameLinearMap<'data>
impl<'data> Clone for PropertyEnumToValueNameSparseMap<'data>
impl<'data> Clone for PropertyScriptToIcuScriptMap<'data>
impl<'data> Clone for PropertyValueNameToEnumMap<'data>
impl<'data> Clone for ScriptWithExtensionsProperty<'data>
impl<'data, T> Clone for PropertyCodePointMap<'data, T>
impl<'de, E> Clone for BorrowedBytesDeserializer<'de, E>
impl<'de, E> Clone for BorrowedStrDeserializer<'de, E>
impl<'de, E> Clone for StrDeserializer<'de, E>
impl<'de, I, E> Clone for MapDeserializer<'de, I, E>
impl<'f> Clone for VaListImpl<'f>
impl<'h> Clone for Memchr2<'h>
impl<'h> Clone for Memchr3<'h>
impl<'h> Clone for Memchr<'h>
impl<'h, 'n> Clone for FindIter<'h, 'n>
impl<'h, 'n> Clone for FindRevIter<'h, 'n>
impl<'handle> Clone for BorrowedHandle<'handle>
impl<'n> Clone for memchr::memmem::Finder<'n>
impl<'n> Clone for memchr::memmem::FinderRev<'n>
impl<'socket> Clone for BorrowedSocket<'socket>
impl<'t> Clone for CloseFrame<'t>
impl<'table, Table, RowKey, Row, CellKey> Clone for AsTable<'table, Table, RowKey, Row, CellKey>
impl<A> Clone for EnumAccessDeserializer<A>where
A: Clone,
impl<A> Clone for MapAccessDeserializer<A>where
A: Clone,
impl<A> Clone for SeqAccessDeserializer<A>where
A: Clone,
impl<A> Clone for llm_tools::ser::core::iter::Repeat<A>where
A: Clone,
impl<A> Clone for RepeatN<A>where
A: Clone,
impl<A> Clone for llm_tools::ser::core::option::IntoIter<A>where
A: Clone,
impl<A> Clone for llm_tools::ser::core::option::Iter<'_, A>
impl<A> Clone for IterRange<A>where
A: Clone,
impl<A> Clone for IterRangeFrom<A>where
A: Clone,
impl<A> Clone for IterRangeInclusive<A>where
A: Clone,
impl<A> Clone for smallvec::IntoIter<A>
impl<A> Clone for SmallVec<A>
impl<A, B> Clone for futures_util::future::either::Either<A, B>
impl<A, B> Clone for tower::util::either::Either<A, B>
impl<A, B> Clone for llm_tools::ser::core::iter::Chain<A, B>
impl<A, B> Clone for Zip<A, B>
impl<A, B> Clone for And<A, B>
impl<A, B> Clone for Or<A, B>
impl<A, B> Clone for Tuple2ULE<A, B>
impl<A, B> Clone for VarTuple<A, B>
impl<A, B, C> Clone for Tuple3ULE<A, B, C>
impl<A, B, C, D> Clone for Tuple4ULE<A, B, C, D>
impl<A, B, C, D, E> Clone for Tuple5ULE<A, B, C, D, E>
impl<A, B, C, D, E, F> Clone for Tuple6ULE<A, B, C, D, E, F>
impl<B> Clone for Cow<'_, B>
impl<B> Clone for h2::client::SendRequest<B>where
B: Buf,
impl<B> Clone for http_body_util::limited::Limited<B>where
B: Clone,
impl<B> Clone for BodyDataStream<B>where
B: Clone,
impl<B> Clone for BodyStream<B>where
B: Clone,
impl<B> Clone for hyper::client::conn::http2::SendRequest<B>
impl<B, C> Clone for ControlFlow<B, C>
impl<B, F> Clone for http_body_util::combinators::map_err::MapErr<B, F>
impl<B, F> Clone for MapFrame<B, F>
impl<B, T> Clone for zerocopy::ref::def::Ref<B, T>
impl<BlockSize, Kind> Clone for BlockBuffer<BlockSize, Kind>
impl<C0, C1> Clone for EitherCart<C0, C1>
impl<C> Clone for SocksV4<C>where
C: Clone,
impl<C> Clone for SocksV5<C>where
C: Clone,
impl<C> Clone for Tunnel<C>where
C: Clone,
impl<C> Clone for CartableOptionPointer<C>where
C: CloneableCartablePointerLike,
impl<C, B> Clone for hyper_util::client::legacy::client::Client<C, B>where
C: Clone,
impl<C, F> Clone for MapFailureClass<C, F>
impl<D> Clone for http_body_util::empty::Empty<D>
impl<D> Clone for Full<D>where
D: Clone,
impl<DataStruct> Clone for ErasedMarker<DataStruct>
impl<Dyn> Clone for DynMetadata<Dyn>where
Dyn: ?Sized,
impl<E> Clone for BoolDeserializer<E>
impl<E> Clone for CharDeserializer<E>
impl<E> Clone for F32Deserializer<E>
impl<E> Clone for F64Deserializer<E>
impl<E> Clone for I8Deserializer<E>
impl<E> Clone for I16Deserializer<E>
impl<E> Clone for I32Deserializer<E>
impl<E> Clone for I64Deserializer<E>
impl<E> Clone for I128Deserializer<E>
impl<E> Clone for IsizeDeserializer<E>
impl<E> Clone for StringDeserializer<E>
impl<E> Clone for U8Deserializer<E>
impl<E> Clone for U16Deserializer<E>
impl<E> Clone for U32Deserializer<E>
impl<E> Clone for U64Deserializer<E>
impl<E> Clone for U128Deserializer<E>
impl<E> Clone for UnitDeserializer<E>
impl<E> Clone for UsizeDeserializer<E>
impl<Ex> Clone for hyper::client::conn::http2::Builder<Ex>where
Ex: Clone,
impl<F> Clone for FromFn<F>where
F: Clone,
impl<F> Clone for OnceWith<F>where
F: Clone,
impl<F> Clone for llm_tools::ser::core::iter::RepeatWith<F>where
F: Clone,
impl<F> Clone for OptionFuture<F>where
F: Clone,
impl<F> Clone for futures_util::stream::repeat_with::RepeatWith<F>where
F: Clone,
impl<F> Clone for CloneBodyFn<F>where
F: Clone,
impl<F> Clone for RedirectFn<F>where
F: Clone,
impl<F> Clone for LayerFn<F>where
F: Clone,
impl<F> Clone for AndThenLayer<F>where
F: Clone,
impl<F> Clone for MapErrLayer<F>where
F: Clone,
impl<F> Clone for MapFutureLayer<F>where
F: Clone,
impl<F> Clone for MapRequestLayer<F>where
F: Clone,
impl<F> Clone for MapResponseLayer<F>where
F: Clone,
impl<F> Clone for MapResultLayer<F>where
F: Clone,
impl<F> Clone for ThenLayer<F>where
F: Clone,
impl<F, S> Clone for FutureService<F, S>
impl<G> Clone for FromCoroutine<G>where
G: Clone,
impl<H> Clone for BuildHasherDefault<H>
impl<H> Clone for HasherRng<H>where
H: Clone,
impl<I> Clone for FromIter<I>where
I: Clone,
impl<I> Clone for DecodeUtf16<I>
impl<I> Clone for Cloned<I>where
I: Clone,
impl<I> Clone for Copied<I>where
I: Clone,
impl<I> Clone for Cycle<I>where
I: Clone,
impl<I> Clone for Enumerate<I>where
I: Clone,
impl<I> Clone for Fuse<I>where
I: Clone,
impl<I> Clone for Intersperse<I>
impl<I> Clone for Peekable<I>
impl<I> Clone for Skip<I>where
I: Clone,
impl<I> Clone for StepBy<I>where
I: Clone,
impl<I> Clone for Take<I>where
I: Clone,
impl<I> Clone for futures_util::stream::iter::Iter<I>where
I: Clone,
impl<I> Clone for CollectionDescriptor<I>
impl<I> Clone for EntityDescriptor<I>
impl<I> Clone for KeyedCollectionDescriptor<I>
impl<I, E> Clone for SeqDeserializer<I, E>
impl<I, F> Clone for FilterMap<I, F>
impl<I, F> Clone for Inspect<I, F>
impl<I, F> Clone for llm_tools::ser::core::iter::Map<I, F>
impl<I, F, const N: usize> Clone for MapWindows<I, F, N>
impl<I, G> Clone for IntersperseWith<I, G>
impl<I, P> Clone for Filter<I, P>
impl<I, P> Clone for MapWhile<I, P>
impl<I, P> Clone for SkipWhile<I, P>
impl<I, P> Clone for TakeWhile<I, P>
impl<I, St, F> Clone for Scan<I, St, F>
impl<I, U> Clone for Flatten<I>
impl<I, U, F> Clone for FlatMap<I, U, F>
impl<I, const N: usize> Clone for ArrayChunks<I, N>
impl<Idx> Clone for llm_tools::ser::core::ops::Range<Idx>where
Idx: Clone,
impl<Idx> Clone for llm_tools::ser::core::ops::RangeFrom<Idx>where
Idx: Clone,
impl<Idx> Clone for llm_tools::ser::core::ops::RangeInclusive<Idx>where
Idx: Clone,
impl<Idx> Clone for RangeTo<Idx>where
Idx: Clone,
impl<Idx> Clone for RangeToInclusive<Idx>where
Idx: Clone,
impl<Idx> Clone for llm_tools::ser::core::range::Range<Idx>where
Idx: Clone,
impl<Idx> Clone for llm_tools::ser::core::range::RangeFrom<Idx>where
Idx: Clone,
impl<Idx> Clone for llm_tools::ser::core::range::RangeInclusive<Idx>where
Idx: Clone,
impl<In, T, U, E> Clone for BoxLayer<In, T, U, E>
impl<In, T, U, E> Clone for BoxCloneServiceLayer<In, T, U, E>
impl<In, T, U, E> Clone for BoxCloneSyncServiceLayer<In, T, U, E>
impl<Inner, Outer> Clone for Stack<Inner, Outer>
impl<K> Clone for std::collections::hash::set::Iter<'_, K>
impl<K> Clone for hashbrown::set::Iter<'_, K>
impl<K, V> Clone for Box<Slice<K, V>>
impl<K, V> Clone for alloc::collections::btree::map::Cursor<'_, K, V>
impl<K, V> Clone for alloc::collections::btree::map::Iter<'_, K, V>
impl<K, V> Clone for alloc::collections::btree::map::Keys<'_, K, V>
impl<K, V> Clone for alloc::collections::btree::map::Range<'_, K, V>
impl<K, V> Clone for alloc::collections::btree::map::Values<'_, K, V>
impl<K, V> Clone for std::collections::hash::map::Iter<'_, K, V>
impl<K, V> Clone for std::collections::hash::map::Keys<'_, K, V>
impl<K, V> Clone for std::collections::hash::map::Values<'_, K, V>
impl<K, V> Clone for hashbrown::map::Iter<'_, K, V>
impl<K, V> Clone for hashbrown::map::Keys<'_, K, V>
impl<K, V> Clone for hashbrown::map::Values<'_, K, V>
impl<K, V> Clone for indexmap::map::iter::IntoIter<K, V>
impl<K, V> Clone for indexmap::map::iter::Iter<'_, K, V>
impl<K, V> Clone for indexmap::map::iter::Keys<'_, K, V>
impl<K, V> Clone for indexmap::map::iter::Values<'_, K, V>
impl<K, V, A> Clone for BTreeMap<K, V, A>
impl<K, V, S> Clone for std::collections::hash::map::HashMap<K, V, S>
impl<K, V, S> Clone for IndexMap<K, V, S>
impl<K, V, S> Clone for LiteMap<K, V, S>
impl<K, V, S, A> Clone for hashbrown::map::HashMap<K, V, S, A>
impl<L> Clone for ServiceBuilder<L>where
L: Clone,
impl<L, R> Clone for http_body_util::either::Either<L, R>
impl<L, R> Clone for tokio_util::either::Either<L, R>
impl<M> Clone for DataPayload<M>where
M: DynamicDataMarker,
<<M as DynamicDataMarker>::DataStruct as Yokeable<'a>>::Output: for<'a> Clone,
Cloning a DataPayload is generally a cheap operation.
See notes in the Clone impl for Yoke.
§Examples
use icu_provider::hello_world::*;
use icu_provider::prelude::*;
let resp1: DataPayload<HelloWorldV1> = todo!();
let resp2 = resp1.clone();impl<M> Clone for DataResponse<M>where
M: DynamicDataMarker,
<<M as DynamicDataMarker>::DataStruct as Yokeable<'a>>::Output: for<'a> Clone,
Cloning a DataResponse is generally a cheap operation.
See notes in the Clone impl for Yoke.
§Examples
use icu_provider::hello_world::*;
use icu_provider::prelude::*;
let resp1: DataResponse<HelloWorldV1> = todo!();
let resp2 = resp1.clone();impl<M, O> Clone for DataPayloadOr<M, O>where
M: DynamicDataMarker,
<<M as DynamicDataMarker>::DataStruct as Yokeable<'a>>::Output: for<'a> Clone,
O: Clone,
impl<O> Clone for F32<O>where
O: Clone,
impl<O> Clone for F64<O>where
O: Clone,
impl<O> Clone for I16<O>where
O: Clone,
impl<O> Clone for I32<O>where
O: Clone,
impl<O> Clone for I64<O>where
O: Clone,
impl<O> Clone for I128<O>where
O: Clone,
impl<O> Clone for Isize<O>where
O: Clone,
impl<O> Clone for U16<O>where
O: Clone,
impl<O> Clone for U32<O>where
O: Clone,
impl<O> Clone for U64<O>where
O: Clone,
impl<O> Clone for U128<O>where
O: Clone,
impl<O> Clone for Usize<O>where
O: Clone,
impl<P> Clone for FollowRedirectLayer<P>where
P: Clone,
impl<P> Clone for RetryLayer<P>where
P: Clone,
impl<P, S> Clone for Retry<P, S>
impl<Ptr> Clone for Pin<Ptr>where
Ptr: Clone,
impl<R> Clone for HttpConnector<R>where
R: Clone,
impl<R> Clone for BlockRng64<R>
impl<R> Clone for BlockRng<R>
impl<R> Clone for ExponentialBackoff<R>where
R: Clone,
impl<R> Clone for ExponentialBackoffMaker<R>where
R: Clone,
impl<R, Rsdr> Clone for ReseedingRng<R, Rsdr>
impl<S> Clone for Host<S>where
S: Clone,
impl<S> Clone for futures_util::stream::poll_immediate::PollImmediate<S>where
S: Clone,
impl<S> Clone for StreamBody<S>where
S: Clone,
impl<S> Clone for RiAbsoluteString<S>where
S: Spec,
impl<S> Clone for RiFragmentString<S>where
S: Spec,
impl<S> Clone for RiString<S>where
S: Spec,
impl<S> Clone for RiQueryString<S>where
S: Spec,
impl<S> Clone for RiReferenceString<S>where
S: Spec,
impl<S> Clone for RiRelativeString<S>where
S: Spec,
impl<S> Clone for Ascii<S>where
S: Clone,
impl<S> Clone for UniCase<S>where
S: Clone,
impl<S, F> Clone for AndThen<S, F>
impl<S, F> Clone for tower::util::map_err::MapErr<S, F>
impl<S, F> Clone for MapFuture<S, F>
impl<S, F> Clone for MapRequest<S, F>
impl<S, F> Clone for MapResponse<S, F>
impl<S, F> Clone for MapResult<S, F>
impl<S, F> Clone for Then<S, F>
impl<S, P> Clone for FollowRedirect<S, P>
impl<Si, F> Clone for SinkMapErr<Si, F>
impl<Si, Item, U, Fut, F> Clone for With<Si, Item, U, Fut, F>
impl<Store> Clone for ZeroAsciiIgnoreCaseTrie<Store>
impl<Store> Clone for ZeroTrie<Store>where
Store: Clone,
impl<Store> Clone for ZeroTrieExtendedCapacity<Store>
impl<Store> Clone for ZeroTriePerfectHash<Store>
impl<Store> Clone for ZeroTrieSimpleAscii<Store>
impl<T> !Clone for &mut Twhere
T: ?Sized,
Shared references can be cloned, but mutable references cannot!
impl<T> Clone for Bound<T>where
T: Clone,
impl<T> Clone for Option<T>where
T: Clone,
impl<T> Clone for Poll<T>where
T: Clone,
impl<T> Clone for std::sync::mpmc::error::SendTimeoutError<T>where
T: Clone,
impl<T> Clone for std::sync::mpsc::TrySendError<T>where
T: Clone,
impl<T> Clone for Status<T>where
T: Clone,
impl<T> Clone for tokio::sync::mpsc::error::SendTimeoutError<T>where
T: Clone,
impl<T> Clone for tokio::sync::mpsc::error::TrySendError<T>where
T: Clone,
impl<T> Clone for *const Twhere
T: ?Sized,
impl<T> Clone for *mut Twhere
T: ?Sized,
impl<T> Clone for &Twhere
T: ?Sized,
Shared references can be cloned, but mutable references cannot!
impl<T> Clone for Cell<T>where
T: Copy,
impl<T> Clone for llm_tools::ser::core::cell::OnceCell<T>where
T: Clone,
impl<T> Clone for RefCell<T>where
T: Clone,
impl<T> Clone for Reverse<T>where
T: Clone,
impl<T> Clone for llm_tools::ser::core::future::Pending<T>
impl<T> Clone for llm_tools::ser::core::future::Ready<T>where
T: Clone,
impl<T> Clone for llm_tools::ser::core::iter::Empty<T>
impl<T> Clone for Once<T>where
T: Clone,
impl<T> Clone for Rev<T>where
T: Clone,
impl<T> Clone for PhantomContravariant<T>where
T: ?Sized,
impl<T> Clone for PhantomCovariant<T>where
T: ?Sized,
impl<T> Clone for PhantomData<T>where
T: ?Sized,
impl<T> Clone for PhantomInvariant<T>where
T: ?Sized,
impl<T> Clone for Discriminant<T>
impl<T> Clone for ManuallyDrop<T>
impl<T> Clone for NonZero<T>where
T: ZeroablePrimitive,
impl<T> Clone for Saturating<T>where
T: Clone,
impl<T> Clone for Wrapping<T>where
T: Clone,
impl<T> Clone for NonNull<T>where
T: ?Sized,
impl<T> Clone for llm_tools::ser::core::result::IntoIter<T>where
T: Clone,
impl<T> Clone for llm_tools::ser::core::result::Iter<'_, T>
impl<T> Clone for Chunks<'_, T>
impl<T> Clone for ChunksExact<'_, T>
impl<T> Clone for llm_tools::ser::core::slice::Iter<'_, T>
impl<T> Clone for RChunks<'_, T>
impl<T> Clone for Windows<'_, T>
impl<T> Clone for Box<Slice<T>>where
T: Clone,
impl<T> Clone for alloc::collections::binary_heap::Iter<'_, T>
impl<T> Clone for alloc::collections::btree::set::Iter<'_, T>
impl<T> Clone for alloc::collections::btree::set::Range<'_, T>
impl<T> Clone for alloc::collections::btree::set::SymmetricDifference<'_, T>
impl<T> Clone for alloc::collections::btree::set::Union<'_, T>
impl<T> Clone for alloc::collections::linked_list::Iter<'_, T>
impl<T> Clone for alloc::collections::vec_deque::iter::Iter<'_, T>
impl<T> Clone for std::io::cursor::Cursor<T>where
T: Clone,
impl<T> Clone for std::sync::mpmc::Receiver<T>
impl<T> Clone for std::sync::mpmc::Sender<T>
impl<T> Clone for std::sync::mpsc::SendError<T>where
T: Clone,
impl<T> Clone for std::sync::mpsc::Sender<T>
impl<T> Clone for SyncSender<T>
impl<T> Clone for OnceLock<T>where
T: Clone,
impl<T> Clone for RtVariableCoreWrapper<T>where
T: Clone + VariableOutputCore + UpdateCore,
<T as BlockSizeUser>::BlockSize: IsLess<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>> + Clone,
<<T as BlockSizeUser>::BlockSize as IsLess<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>>>::Output: NonZero,
<T as BufferKindUser>::BufferKind: Clone,
impl<T> Clone for CoreWrapper<T>where
T: Clone + BufferKindUser,
<T as BlockSizeUser>::BlockSize: IsLess<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>> + Clone,
<<T as BlockSizeUser>::BlockSize as IsLess<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>>>::Output: NonZero,
<T as BufferKindUser>::BufferKind: Clone,
impl<T> Clone for XofReaderCoreWrapper<T>where
T: Clone + XofReaderCore,
<T as BlockSizeUser>::BlockSize: IsLess<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>> + Clone,
<<T as BlockSizeUser>::BlockSize as IsLess<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>>>::Output: NonZero,
impl<T> Clone for futures_channel::mpsc::Sender<T>
impl<T> Clone for futures_channel::mpsc::TrySendError<T>where
T: Clone,
impl<T> Clone for futures_channel::mpsc::UnboundedSender<T>
impl<T> Clone for Abortable<T>where
T: Clone,
impl<T> Clone for futures_util::future::pending::Pending<T>
impl<T> Clone for futures_util::future::poll_immediate::PollImmediate<T>where
T: Clone,
impl<T> Clone for futures_util::future::ready::Ready<T>where
T: Clone,
impl<T> Clone for Drain<T>
impl<T> Clone for futures_util::stream::empty::Empty<T>
impl<T> Clone for futures_util::stream::pending::Pending<T>
impl<T> Clone for futures_util::stream::repeat::Repeat<T>where
T: Clone,
impl<T> Clone for HeaderMap<T>where
T: Clone,
impl<T> Clone for Request<T>where
T: Clone,
impl<T> Clone for http::response::Response<T>where
T: Clone,
impl<T> Clone for HttpsConnector<T>where
T: Clone,
impl<T> Clone for CodePointMapRange<T>where
T: Clone,
impl<T> Clone for CodePointTrie<'_, T>
impl<T> Clone for CodePointMapData<T>
impl<T> Clone for PropertyNamesLongBorrowed<'_, T>where
T: NamedEnumeratedProperty,
impl<T> Clone for PropertyNamesShortBorrowed<'_, T>where
T: NamedEnumeratedProperty,
impl<T> Clone for PropertyParserBorrowed<'_, T>
impl<T> Clone for indexmap::set::iter::IntoIter<T>where
T: Clone,
impl<T> Clone for indexmap::set::iter::Iter<'_, T>
impl<T> Clone for Built<'_, T>where
T: ?Sized,
impl<T> Clone for iri_string::template::error::CreationError<T>where
T: Clone,
impl<T> Clone for iri_string::types::generic::error::CreationError<T>where
T: Clone,
impl<T> Clone for OnceBox<T>where
T: Clone,
impl<T> Clone for once_cell::sync::OnceCell<T>where
T: Clone,
impl<T> Clone for once_cell::unsync::OnceCell<T>where
T: Clone,
impl<T> Clone for slab::Iter<'_, T>
impl<T> Clone for Slab<T>where
T: Clone,
impl<T> Clone for PollSender<T>
impl<T> Clone for tokio::sync::broadcast::Sender<T>
impl<T> Clone for tokio::sync::broadcast::WeakSender<T>
impl<T> Clone for tokio::sync::mpsc::bounded::Sender<T>
impl<T> Clone for tokio::sync::mpsc::bounded::WeakSender<T>
impl<T> Clone for tokio::sync::mpsc::error::SendError<T>where
T: Clone,
impl<T> Clone for tokio::sync::mpsc::unbounded::UnboundedSender<T>
impl<T> Clone for WeakUnboundedSender<T>
impl<T> Clone for tokio::sync::once_cell::OnceCell<T>where
T: Clone,
impl<T> Clone for SetOnce<T>where
T: Clone,
impl<T> Clone for tokio::sync::watch::error::SendError<T>where
T: Clone,
impl<T> Clone for tokio::sync::watch::Receiver<T>
impl<T> Clone for tokio::sync::watch::Sender<T>
impl<T> Clone for Timeout<T>where
T: Clone,
impl<T> Clone for ServiceFn<T>where
T: Clone,
impl<T> Clone for DebugValue<T>
impl<T> Clone for DisplayValue<T>
impl<T> Clone for Instrumented<T>where
T: Clone,
impl<T> Clone for WithDispatch<T>where
T: Clone,
impl<T> Clone for TryWriteableInfallibleAsWriteable<T>where
T: Clone,
impl<T> Clone for WriteableAsTryWriteableInfallible<T>where
T: Clone,
impl<T> Clone for Unalign<T>where
T: Copy,
impl<T> Clone for MaybeUninit<T>where
T: Copy,
impl<T, A> Clone for Box<[T], A>
impl<T, A> Clone for Box<T, A>
impl<T, A> Clone for BinaryHeap<T, A>
impl<T, A> Clone for alloc::collections::binary_heap::IntoIter<T, A>
impl<T, A> Clone for IntoIterSorted<T, A>
impl<T, A> Clone for BTreeSet<T, A>
impl<T, A> Clone for alloc::collections::btree::set::Difference<'_, T, A>
impl<T, A> Clone for alloc::collections::btree::set::Intersection<'_, T, A>
impl<T, A> Clone for alloc::collections::linked_list::Cursor<'_, T, A>where
A: Allocator,
impl<T, A> Clone for alloc::collections::linked_list::IntoIter<T, A>
impl<T, A> Clone for LinkedList<T, A>
impl<T, A> Clone for alloc::collections::vec_deque::into_iter::IntoIter<T, A>
impl<T, A> Clone for VecDeque<T, A>
impl<T, A> Clone for Rc<T, A>
impl<T, A> Clone for alloc::rc::Weak<T, A>
impl<T, A> Clone for Arc<T, A>
impl<T, A> Clone for alloc::sync::Weak<T, A>
impl<T, A> Clone for alloc::vec::into_iter::IntoIter<T, A>
impl<T, A> Clone for Vec<T, A>
impl<T, A> Clone for HashTable<T, A>
impl<T, E> Clone for Result<T, E>
impl<T, F> Clone for Successors<T, F>
impl<T, F> Clone for AlwaysReady<T, F>
impl<T, F> Clone for VarZeroVecOwned<T, F>where
T: ?Sized,
impl<T, N> Clone for GenericArrayIter<T, N>where
T: Clone,
N: ArrayLength<T>,
impl<T, N> Clone for GenericArray<T, N>where
T: Clone,
N: ArrayLength<T>,
impl<T, OutSize, O> Clone for CtVariableCoreWrapper<T, OutSize, O>where
T: Clone + VariableOutputCore,
OutSize: Clone + ArrayLength<u8> + IsLessOrEqual<<T as OutputSizeUser>::OutputSize>,
O: Clone,
<OutSize as IsLessOrEqual<<T as OutputSizeUser>::OutputSize>>::Output: NonZero,
<T as BlockSizeUser>::BlockSize: IsLess<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>>,
<<T as BlockSizeUser>::BlockSize as IsLess<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B0>, B0>, B0>, B0>, B0>, B0>>>::Output: NonZero,
impl<T, P> Clone for llm_tools::ser::core::slice::RSplit<'_, T, P>
impl<T, P> Clone for llm_tools::ser::core::slice::Split<'_, T, P>
impl<T, P> Clone for llm_tools::ser::core::slice::SplitInclusive<'_, T, P>
impl<T, S1, S2> Clone for indexmap::set::iter::SymmetricDifference<'_, T, S1, S2>
impl<T, S> Clone for std::collections::hash::set::Difference<'_, T, S>
impl<T, S> Clone for std::collections::hash::set::HashSet<T, S>
impl<T, S> Clone for std::collections::hash::set::Intersection<'_, T, S>
impl<T, S> Clone for std::collections::hash::set::SymmetricDifference<'_, T, S>
impl<T, S> Clone for std::collections::hash::set::Union<'_, T, S>
impl<T, S> Clone for indexmap::set::iter::Difference<'_, T, S>
impl<T, S> Clone for indexmap::set::iter::Intersection<'_, T, S>
impl<T, S> Clone for indexmap::set::iter::Union<'_, T, S>
impl<T, S> Clone for IndexSet<T, S>
impl<T, S> Clone for PercentEncoded<T, S>
impl<T, S, A> Clone for hashbrown::set::Difference<'_, T, S, A>where
A: Allocator,
impl<T, S, A> Clone for hashbrown::set::HashSet<T, S, A>
impl<T, S, A> Clone for hashbrown::set::Intersection<'_, T, S, A>where
A: Allocator,
impl<T, S, A> Clone for hashbrown::set::SymmetricDifference<'_, T, S, A>where
A: Allocator,
impl<T, S, A> Clone for hashbrown::set::Union<'_, T, S, A>where
A: Allocator,
impl<T, U, E> Clone for BoxCloneService<T, U, E>
impl<T, U, E> Clone for BoxCloneSyncService<T, U, E>
impl<T, const N: usize> Clone for [T; N]where
T: Clone,
impl<T, const N: usize> Clone for llm_tools::ser::core::array::IntoIter<T, N>where
T: Clone,
impl<T, const N: usize> Clone for Mask<T, N>
impl<T, const N: usize> Clone for Simd<T, N>
impl<U> Clone for NInt<U>
impl<U> Clone for PInt<U>
impl<U> Clone for OptionULE<U>where
U: Copy,
impl<U, B> Clone for UInt<U, B>
impl<U, const N: usize> Clone for NichedOption<U, N>where
U: Clone,
impl<U, const N: usize> Clone for NichedOptionULE<U, N>where
U: NicheBytes<N> + ULE,
impl<V, A> Clone for TArr<V, A>
impl<X> Clone for Uniform<X>
impl<X> Clone for UniformFloat<X>where
X: Clone,
impl<X> Clone for UniformInt<X>where
X: Clone,
impl<X> Clone for WeightedIndex<X>
impl<Y> Clone for NeverMarker<Y>where
Y: Clone,
impl<Y, C> Clone for Yoke<Y, C>
Clone requires that the cart type C derefs to the same address after it is cloned. This works for
Rc, Arc, and &’a T.
For other cart types, clone .backing_cart() and re-use .attach_to_cart(); however, doing
so may lose mutations performed via .with_mut().
Cloning a Yoke is often a cheap operation requiring no heap allocations, in much the same
way that cloning an Rc is a cheap operation. However, if the yokeable contains owned data
(e.g., from .with_mut()), that data will need to be cloned.