/// 表示显示器支持的视频模式
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub struct VideoMode {
/// 视频模式的分辨率(物理尺寸)
pub physical_size: UVec2,
/// 视频模式的位深度
pub bit_depth: u16,
/// 刷新率(毫赫兹)
pub refresh_rate_millihertz: u32,
}
字段说明
字段名称 |
类型 |
描述 |
physical_size |
UVec2 |
视频模式的分辨率(物理尺寸) |
bit_depth |
u16 |
视频模式的位深度 |
refresh_rate_millihertz |
u32 |
刷新率(单位:毫赫兹) |
特性实现 (Trait Implementations)
Clone
impl Clone for VideoMode {
/// 返回值的副本
fn clone(&self) -> VideoMode;
/// 从源执行复制赋值
fn clone_from(&mut self, source: &Self);
}
Debug
impl Debug for VideoMode {
/// 使用格式化器显示结构体信息
fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>;
}
Deserialize<'de>
impl<'de> Deserialize<'de> for VideoMode {
/// 从 Serde 反序列化器反序列化该值
fn deserialize<__D>(__deserializer: __D) -> Result<VideoMode, __D::Error>;
}
PartialEq
impl PartialEq for VideoMode {
/// 判断两个实例是否相等
fn eq(&self, other: &VideoMode) -> bool;
/// 判断是否不相等(默认实现通常足够)
fn ne(&self, other: &Rhs) -> bool;
}
Serialize
impl Serialize for VideoMode {
/// 使用 Serde 序列化器序列化该值
fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>;
}
Reflect
(反射相关)
impl Reflect for VideoMode {
/// 将值转换为 Box<dyn Any>
fn into_any(self: Box<VideoMode>) -> Box<dyn Any>;
/// 获取值的 &dyn Any 形式
fn as_any(&self) -> &dyn Any;
/// 获取值的 &mut dyn Any 形式
fn as_any_mut(&mut self) -> &mut dyn Any;
}
自动特性实现 (Auto Trait Implementations)
特性 |
说明 |
Freeze |
标记类型为不可变 |
RefUnwindSafe |
保证在栈展开时安全 |
Send |
可跨线程安全传递 |
Sync |
可跨线程安全共享引用 |
Unpin |
允许移动后继续使用 |
UnwindSafe |
保证在 panic 时不会导致内存不安全 |
泛型实现 (Blanket Implementations)
常见类型转换
impl<T> From<T> for T; // T 到 T 的平凡转换
impl<T, U> Into<U> for T where U: From<T>; // 通用类型转换
反射相关
impl<T> GetPath for T where T: Reflect + ?Sized; // 获取反射路径
impl<T> Reflectable for T where T: Reflect + GetTypeRegistration + Typed + TypePath; // 反射能力支持
序列化/反序列化
impl<T> Serialize for T where T: Serialize + ?Sized; // 序列化支持
impl<T> DeserializeOwned for T where T: for<'de> Deserialize<'de>; // 反序列化拥有值的支持
其他工具特性
impl<T> Instrument for T; // 添加诊断工具
impl<T> Tap for T; // 链式调用工具
impl<T> ToOwned for T where T: Clone; // 克隆到拥有值的转换
使用说明
该结构体用于表示显示器的视频模式参数,常用于全屏模式设置:
let video_mode = VideoMode {
physical_size: UVec2::new(1920, 1080),
bit_depth: 32,
refresh_rate_millihertz: 60_000, // 60 Hz
};