pub struct ReadSpeed {
pub words_per_minute: f64,
pub seconds_per_image: f64,
pub seconds_per_code_block: f64,
pub count_emoji: bool,
pub chinese: bool,
}Expand description
阅读速度配置
允许自定义各种影响阅读时间的因素。
§Examples
use markdown_readtime::ReadSpeed;
// 使用构建器模式创建自定义配置
let speed = ReadSpeed::default()
.wpm(180.0)
.image_time(15.0)
.code_block_time(25.0)
.emoji(false);
// 或者直接创建
let speed = ReadSpeed::new(180.0, 15.0, 25.0, false, true);Fields§
§words_per_minute: f64每分钟阅读单词数(默认:200)
这是阅读速度的核心参数,用于计算文本的基础阅读时间。
seconds_per_image: f64每张图片额外时间(秒,默认:12)
每发现一张图片就会增加相应的时间,因为读者通常需要额外时间查看图片。
seconds_per_code_block: f64每个代码块额外时间(秒,默认:20)
每发现一个代码块就会增加相应的时间,因为代码通常需要更仔细的阅读。
count_emoji: bool是否考虑emoji(默认:true)
当启用时,emoji 会被单独计数,影响总的阅读时间估算。
chinese: bool是否中文(默认:true)
决定使用哪种文本计数方式:
true: 使用中文计数方式(计算字符数)false: 使用英文计数方式(计算单词数)
Implementations§
Source§impl ReadSpeed
impl ReadSpeed
pub fn new( wpm: f64, seconds_per_image: f64, seconds_per_code_block: f64, count_emoji: bool, chinese: bool, ) -> Self
Sourcepub fn wpm(self, wpm: f64) -> Self
pub fn wpm(self, wpm: f64) -> Self
Examples found in repository?
examples/custom_speed.rs (line 8)
3fn main() {
4 let markdown_content = "# 示例文章\n\n这是用来测试的文章内容。";
5
6 // 创建自定义阅读速度配置
7 let speed = ReadSpeed::default()
8 .wpm(180.0) // 设置每分钟阅读180个词
9 .image_time(15.0) // 每张图片额外增加15秒
10 .code_block_time(25.0) // 每个代码块额外增加25秒
11 .emoji(true) // 考虑emoji
12 .chinese(true); // 中文模式
13
14 let read_time = estimate_with_speed(markdown_content, &speed);
15 println!("自定义配置下的阅读时间: {}秒", read_time.total_seconds);
16}Sourcepub fn image_time(self, seconds: f64) -> Self
pub fn image_time(self, seconds: f64) -> Self
Examples found in repository?
examples/custom_speed.rs (line 9)
3fn main() {
4 let markdown_content = "# 示例文章\n\n这是用来测试的文章内容。";
5
6 // 创建自定义阅读速度配置
7 let speed = ReadSpeed::default()
8 .wpm(180.0) // 设置每分钟阅读180个词
9 .image_time(15.0) // 每张图片额外增加15秒
10 .code_block_time(25.0) // 每个代码块额外增加25秒
11 .emoji(true) // 考虑emoji
12 .chinese(true); // 中文模式
13
14 let read_time = estimate_with_speed(markdown_content, &speed);
15 println!("自定义配置下的阅读时间: {}秒", read_time.total_seconds);
16}Sourcepub fn code_block_time(self, seconds: f64) -> Self
pub fn code_block_time(self, seconds: f64) -> Self
Examples found in repository?
examples/custom_speed.rs (line 10)
3fn main() {
4 let markdown_content = "# 示例文章\n\n这是用来测试的文章内容。";
5
6 // 创建自定义阅读速度配置
7 let speed = ReadSpeed::default()
8 .wpm(180.0) // 设置每分钟阅读180个词
9 .image_time(15.0) // 每张图片额外增加15秒
10 .code_block_time(25.0) // 每个代码块额外增加25秒
11 .emoji(true) // 考虑emoji
12 .chinese(true); // 中文模式
13
14 let read_time = estimate_with_speed(markdown_content, &speed);
15 println!("自定义配置下的阅读时间: {}秒", read_time.total_seconds);
16}Sourcepub fn emoji(self, count: bool) -> Self
pub fn emoji(self, count: bool) -> Self
Examples found in repository?
examples/custom_speed.rs (line 11)
3fn main() {
4 let markdown_content = "# 示例文章\n\n这是用来测试的文章内容。";
5
6 // 创建自定义阅读速度配置
7 let speed = ReadSpeed::default()
8 .wpm(180.0) // 设置每分钟阅读180个词
9 .image_time(15.0) // 每张图片额外增加15秒
10 .code_block_time(25.0) // 每个代码块额外增加25秒
11 .emoji(true) // 考虑emoji
12 .chinese(true); // 中文模式
13
14 let read_time = estimate_with_speed(markdown_content, &speed);
15 println!("自定义配置下的阅读时间: {}秒", read_time.total_seconds);
16}Sourcepub fn chinese(self, is_chinese: bool) -> Self
pub fn chinese(self, is_chinese: bool) -> Self
Examples found in repository?
examples/custom_speed.rs (line 12)
3fn main() {
4 let markdown_content = "# 示例文章\n\n这是用来测试的文章内容。";
5
6 // 创建自定义阅读速度配置
7 let speed = ReadSpeed::default()
8 .wpm(180.0) // 设置每分钟阅读180个词
9 .image_time(15.0) // 每张图片额外增加15秒
10 .code_block_time(25.0) // 每个代码块额外增加25秒
11 .emoji(true) // 考虑emoji
12 .chinese(true); // 中文模式
13
14 let read_time = estimate_with_speed(markdown_content, &speed);
15 println!("自定义配置下的阅读时间: {}秒", read_time.total_seconds);
16}Trait Implementations§
impl Copy for ReadSpeed
Auto Trait Implementations§
impl Freeze for ReadSpeed
impl RefUnwindSafe for ReadSpeed
impl Send for ReadSpeed
impl Sync for ReadSpeed
impl Unpin for ReadSpeed
impl UnwindSafe for ReadSpeed
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
🔬This is a nightly-only experimental API. (
clone_to_uninit)