基础特性 (Basic Traits)
clone与copy的区别联系
Debug
Default //负载对象有一个特殊的实现
PartialEq/Eq/PartialOrd/Ord/Hash
序列和迭代器 (Sequences and Iterators)
Iterator
IntoIterator
//实现了 DoubleEndedIterator 特性的迭代器不仅可以从前向后遍历,还可以从后向前遍历。
DoubleEndedIterator
//实现了 ExactSizeIterator 特性的迭代器必须实现 len 方法,返回迭代器中剩余项的数量。
ExactSizeIterator
Extend
let mut vec = vec![1, 2, 3];
vec.extend(vec![4, 5, 6]);
println!("{:?}", vec); // 输出: [1, 2, 3, 4, 5, 6]
//特性允许你从一个迭代器创建一个集合
FromIterator
FusedIterator
TrustedLen
InPlaceIterable
集合接口 (Collection Traits)
//Borrow 特性定义了一种借用方式,它允许我们使用更灵活的方式来进行不同类型之间的引用。
Borrow
#[derive(Debug, Eq, PartialEq, Hash)]
struct MyKey {
key: String,
}
impl Borrow<str> for MyKey {
fn borrow(&self) -> &str {
&self.key
}
}
let mut map = HashMap::new();
map.insert(MyKey { key: "hello".to_string() }, 42);
// get的使用, 使用的不使用MyKey 类型而是一个str类型。 可以通过str类型来借用MyKey 类型
// 也就是Borrow 定义的。
assert_eq!(map.get("hello"), Some(&42));
//类似的
String 类型实现了 Borrow<str>,这使得你可以使用 &str 类型的键来查找使用 String 类型键的数据结构。
let mut map: HashMap<String, i32> = HashMap::new();
map.insert("hello".to_string(), 42);
// 你可以使用 &str 类型来查找
assert_eq!(map.get("hello"), Some(&42));
Cow(拷贝或借用(Clone on Write))类型实现了 Borrow<str>,所以你可以用 &str 类型来查找使用 Cow<str> 类型键的数据结构。
等等
BorrowMut
ToOwned
//许多类型都实现了 AsRef 特性,使得它们能够被方便地转换为其他类型的不可变引用
AsRef
String 实现了 AsRef<str>:允许 String 类型被转换为 &str 引用。
&String 实现了 AsRef<str>:允许 &String 被转换为 &str 引用。
let s = String::from("hello");
PathBuf 实现了 AsRef<Path>:允许 PathBuf 被转换为 &Path 引用。
&PathBuf 实现了 AsRef<Path>:允许 &PathBuf 被转换为 &Path 引用。
str 实现了 AsRef<Path>:允许 &str 被转换为 &Path 引用。
String 实现了 AsRef<Path>:允许 String 被转换为 &Path 引用。
let s_ref: &str = s.as_ref(); // `s` 可以直接转换为 `&str`
let p = PathBuf::from("/some/path");
let p_ref: &Path = p.as_ref(); // `p` 可以直接转换为 `&Path`
AsMut
Deref
DerefMut
内存管理和分配 (Memory Management and Allocation)
Drop
Sized
Unsize
Alloc
GlobalAlloc
异步编程 (Asynchronous Programming)
Future
Stream
Sink
AsyncRead
AsyncWrite
AsyncSeek
AsyncBufRead
字符串处理 (String Processing)
ToString
FromStr
Pattern
Searcher
ReverseSearcher
Consumer
ReverseConsumer
I/O 操作 (I/O Operations)
Read
Write
Seek
BufRead
并发编程 (Concurrency)
Send
Sync
JoinHandleExt
ThreadExt
ThreadBuilderExtSetName
其他常用接口 (Miscellaneous)
Fn/FnMut/FnOnce
Fn 表示一个可以被调用的闭包,且不会消耗或修改捕捉的环境。
let add_one = |x: i32| x + 1; //定义Fn类型
let result = add_one(1); // 使用 `Fn`
let mut counter = 0; //定义一个FnMut类型
let mut increment = || counter += 1; // 使用 `FnMut`
increment();
let s = String::from("hello");
let consume = || drop(s); // 使用 `FnOnce`
consume();
From/Into/TryFrom/TryInto 类型转换的trait, TryFrom 可能会报错, From不会报错
let i: i8 = i8::try_from(128).unwrap_or(-1); // 结果会失败,超过 i8 范围
let j: i32 = i32::try_from(123u128).expect("conversion failed"); // 成功
let s: String = String::from("hello");
Into 特性的实现是基于 From 特性自动推导出来的。
struct MyType {
value: String,
}
impl From<&str> for MyType {
fn from(s: &str) -> Self {
MyType {
value: s.to_string(),
}
}
}
let s: &str = "hello";
因为,你是已经实现了from,所有可以使用into
let my_val: MyType = s.into(); // 使用 `Into` 方式进行转换
println!("MyType value: {}", my_val.value);
Pointer
Any
Reflect
序列化/反序列化 (Serialization/Deserialization)
Serialize
Deserialize
系统接口 (System Interfaces)
SystemTimeExt
InstantExt
DurationExt
FileExt
DirEntryExt
OpenOptionsExt
PermissionsExt
MetadataExt
并行和线程控制 (Parallelism and Thread Control)
ThreadPoolBuilderExt
ScopeFifoExt
ThreadPoolExt
网络编程 (Networking)
ToSocketAddrs
UdpSocketExt
TcpStreamExt
TcpListenerExt
文本处理 (Text Processing)
TrimWhitespace
Radix
Categorize
PatternIndices
StrExt
数据结构 (Data Structures)
BTreeExt
HashMapExt
HashSetExt
VecDequeExt
BinaryHeapExt
LinkedListExt
HeapExt
VecExt
SliceExt
SliceConcatExt
内存管理 (Memory Management)
SmartPointer
ThinHeap
BoxExt
RcExt
ArcExt
WeakExt
Cow
宏相关 (Macro Related)
MacroExpander
MacroStr
磁盘IO (Disk IO)
ReadDirExt
FileExt
MetadataExt
时间 (Time)
SystemTimeExt
InstantExt
DurationExt
环境变量 (Environment Variables)
EnvKey
EnvValue
并发原语 (Concurrency Primitives)
AtomicExt
CondvarExt
MutexExt
RwLockExt
OnceExt
条件计算 (Conditional Computation)
CondvarExt
Lazarus 相关 (Lazarus-based traits)
Component
ComponentLink
Properties
Html
微内核和驱动 (Microkernel and Drivers)
DeviceExt
DriverExt
KernelExt
高级数学 (Advanced Math)
Complex
Real
Integrable
Differentiable
底层操作 (Low-Level Operations)
RawPointer
ThinBox
TLS
信息相关 (Info Related)
TypeId
TypeName
StdError
HTTP (网络编程相关)
ToHeaderValues
IntoHeaderValue
HeaderView
Url
JSON (Json 相关)
JsonDeserializer
JsonSerializer
JsonObject
高级特性 (Advanced Features)
Pin
Unpin
Poll
Generator
GeneratorState
编译时计算 (Compile-Time Computation)
ConstGeneric
TypeLevel
ConstExpr
Filesystem (文件系统)
FileTypeExt
FsExt
事件驱动 (Event-Driven)
Event
EventListener
EventEmitter
音频处理 (Audio Processing)
AudioStream
AudioSink
图像处理 (Image Processing)
Pixel
Drawable
Transform
常用工具 (Utility)
IsSorted
Permutation
Combination
False
True
算法 (Algorithms)
AlgorithmExt
SearchAlgorithm
SortAlgorithm
ALGNA
BufferedExt
字符相关 (Character Related)
CharExt
UnicodeExt
EncodableExt
DecodableExt
符号处理 (Symbolic Processing)
Symbol
Expression
ExpressionArity
ASTBuilder
Optimizable
操作系统交互/系统 (OS Interaction/System)
OS
Process
CommandExt
ChildExt
缓存 (Caching)
CacheRead
CacheWrite
网络类型 (Network Types)
AddrParseError
FromStr
ToSocketAddrs
时间与日期(时间 DateTime)
TimeZone
Offset
编解码 (Encoding/Decoding)
Encode
Decode
并发原语与同步 (Concurrency Primitives and Synchronization)
RawMutex
RawRwLock
容器与存储 (Containers)
Storage
Cache
Factory
动态语言 (Dynamic Language Features)
Dynamic
DynamicType
事件处理 (Event Handling)
Handler
Listener
文件与流 (File and Stream)
Queryable
Streamable
Writable
GUI 相关 (Graphical User Interface)
Widget
Component
数学特性 (Mathematical Properties)
Identity
Inverse
Associative
算术(Arithmetic Traits)
Exp
Log
字节处理 (Byte Operations)
ByteOrder
Endian
错误处理 (Error Handling)
Result
Option
ResultExt
集合与容器 (Collections and Containers)
Queue
Stack
Deque
内存分配 (Memory Allocation)
Allocatable
Heap
Stack
内存屏障 (Memory Barriers)
Fence
Ordering
哑元类型 (Phantom Data and Zero-Sized Types)
ZeroSize
PhantomData
锁类型 (Locks)
Mutex
SpinLock
ReadWriteLock
RecursiveLock
权限管理 (Permissions)
Permission
AccessControl
并发工具 (Concurrency Tools)
Atomic
Barrier
Semaphore
文件访问 (File Access)
FileHandle
FileFormat
FileAccess
缓存管理 (Cache Management)
DiskCache
MemoryCache
事件 (Events)
EventManager
EventPublisher
EventSubscriber
数值模拟 (Numerical Simulation)
Simulatable
DifferentialEquation
界面组件 (UI Components)
Button
Label
Textbox
渲染 (Rendering)
Renderable
Graphics
Shader
物理引擎 (Physics Engine)
Physics
RigidBody
数据库相关 (Database)
DatabaseExt
QueryableExt
TransactionExt
事务 (Transactions)
Transaction
AtomicTransaction
序列化与反序列化 (Serialization/Deserialization)
YamlSerialize
TomlSerialize
测试框架 (Test Framework)
Test
Runner
序列相关 (Sequences)
LinearSequence
Fibonacci
ArithmeticSequence
信号与槽(Signals and Slots)
Signal
Slot
类型系统 (Type System)
Type
Generic
TraitObject
日期与时间 (Date and Time)
DateTime
Duration
NaiveDateTime
编译期逻辑 (Compile-Time Logic)
CompileTime
ConstTrait
文本分析 (Text Analysis)
TextAnalyzer
Tokenizer
音频相关 (Audio)
AudioInput
AudioOutput
AudioBuffer
HTTP (Web)
HttpRequest
HttpResponse
多媒体 (Multimedia)
VideoStream
AudioStream
安全相关 (Security)
Encrypt
Decrypt
Hash
权限系统 (Authorization)
Authorizable
Permission
脚本语言 (Scripting)
ScriptEngine
Interpreter
Compiler
分布式计算 (Distributed Computing)
Cluster
Node
Rpc
几何 (Geometry)
Point
Line
Polygon
压缩 (Compression)
Compress
Decompress
多媒体 (Multimedia)
Image
Audio
编码格式 (Encoding)
Utf8
Ascii
Base64
终端处理 (Terminal)
Terminal
TerminalBuffer
动态加载 (Dynamic Loading)
Plugin
Module
出错处理 (Errors)
Retriable
Recoverable
模板 (Templating)
Template
RenderableTemplate
机器学习 (Machine Learning)
Model
Predictor
Trainer
算术运算(Arithmetic)
Addition
Subtraction
Multiplication
Division
校验和 (Checksum)
Checksum
Crc32
Md5
编译时计算 (Compile Time)
TypeLevel
ValueLevel
类型重载 (Type Overloading)
Class
TraitObject
数据标签 (Data Labelling)
Labeller
DatasetExt
引导加载 (Bootstrapping)
Bootloader
Kernel
侧重 (Staging)
Prod
Dev
数值线性代数 (Numerical Linear Algebra)
Matrix
Vector
启动逻辑 (Startup)
Initializer
Configurator
符号运算 (Symbolic Computation)
Symbol
Expression
Differential
矩阵运算(Matrix)
Matrix
MatrixOperations
代数运算 (Algebra)
Algebra
Ring
Field
宏定义 (Macro Definition)
DeclareMacro
ExpandMacro
几何图形 (Geometric Shapes)
Shape
Circle
Square
注释处理 (Annotations)
Annotate
Documentation
检索 (Retrieval)
Search
Retrieve
优化 (Optimization)
Optimizer
OptimizerConfig
访问控制 (Access Control)
Authorizable
Accessible
数据写入与读取 (Read/Write)
Datum
Read
Write
统计学 (Statistics)
Statistics
StatisticalModel
信号处理 (Signal Processing)
Filter
SignalAnalyzer
化学计算 (Chemical Computation)
Molecular
Reaction
操作系统(OS)
Kernel
FileSystem
ProcessManagement
标量 (Scalar)
Scalar
Vector
Tensor
枚举 (Enumerations)
Enum
EnumSet
命令 (Commands)
Executor
Command
CommandArguments
调度 (Scheduling)
Scheduler
Task
常量 (Constants)
Constant
Defined
负载均衡 (Load Balancing)
Balancer
Weighted
数据索引 (Data Indexing)
Indexer
SearchIndex
网络 (Network)
Network
NetInterface
安全(Secure)
Secure
Encryptor
Decryptor
网络通信 (Network Communication)
Protocol
Message
版本控制 (Versioning)
Versioned
Rollback
阅读器 (Readers)
Reader
LineReader
类型系统 (Type Systems)
BaseType
ComplexType
函数 (Functions)
Function
Callable
痕迹 (Trace)
Tracer
Logger
安全属性 (Security Attributes)
Secured
Authorization
事件调度 (Event Scheduling)
Scheduler
EventLoop
库管理 (Library Management)
Library
Packages
反转控制 (Inversion of Control)
Service
Inject
响应式编程 (Reactive Programming)
Observable
Observer
错误处理(Error Handling)
Try
Catch
加密 (Cryptography)
Encryptor
Decryptor
二进制操作 (Binary Operations)
Bitwise
BinaryConvertible
硬件交互 (Hardware Interaction)
Peripheral
Driver
高性能计算 (High Performance Computing)
Parallel
Distributed
逻辑运算 (Logical Operations)
Logic
And
Or
解析器 (Parsers)
Parser
Lexer
定时器 (Timers)
Timer
Timeout
并发 (Concurrency)
Concurrent
ThreadSafe
可视化 (Visualization)
Chart
Graph
声音处理 (Sound Processing)
Oscillator
Synthesizer
统计学 (Statistics)
Estimator
Regression
多线程 (Multithreaded)
Threaded
ParallelExecution
TaskQueue
文件处理 (File Handling)
FileReader
FileWriter
FileStreamer
序列化/反序列化 (Serialization/Deserialization)
BinarySerialize
BinaryDeserialize
CsvSerialize
CsvDeserialize
锁与同步 (Locks and Synchronization)
Mutex
SpinLock
ReadWriteLock
Lock
并发工具 (Concurrency Tools)
AtomicOperations
Semaphore
Barrier
Channel
Actor
网络编程 (Networking)
TcpHandler
UdpHandler
NetworkSocket
RestClient
SoapClient
分布式计算 (Distributed Computing)
DistributedAlgorithm
ClusterManagement
NodeManagement
RpcInterface
日志记录 (Logging)
Loggable
Logger
LogHandler
配置管理 (Configuration Management)
Configurable
Settings
Preferences
ConfigReader
ConfigWriter
事件处理 (Event Handling)
EventSource
EventSink
EventDispatcher
EventHandler
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。