pub struct ContentFingerprint {
pub text_hash: u64,
pub structure_hash: u64,
pub main_content_hash: u64,
pub element_count: usize,
pub text_node_count: usize,
pub text_length: usize,
pub main_content_length: usize,
}Expand description
内容指纹,用于检测 HTML 内容的变化
存储文本哈希、结构哈希和元素统计信息,通过比较两个指纹来判断内容变化程度。
Fields§
§text_hash: u64全文文本哈希
structure_hash: u64DOM 结构哈希
main_content_hash: u64主要正文文本哈希
element_count: usize元素总数
text_node_count: usize文本节点数
text_length: usize文本总长度(字符)
main_content_length: usize主要正文文本长度
Implementations§
Source§impl ContentFingerprint
impl ContentFingerprint
Sourcepub fn has_changed(&self, other: &ContentFingerprint) -> bool
pub fn has_changed(&self, other: &ContentFingerprint) -> bool
判断与另一个指纹相比内容是否发生了变化
只要任一哈希不同,即认为内容已变化。
Sourcepub fn has_minor_changes(&self, other: &ContentFingerprint) -> bool
pub fn has_minor_changes(&self, other: &ContentFingerprint) -> bool
判断是否仅发生了微小变化(文本改变但结构未变)
Sourcepub fn has_structural_changes(&self, other: &ContentFingerprint) -> bool
pub fn has_structural_changes(&self, other: &ContentFingerprint) -> bool
判断是否发生了结构性变化(DOM 树结构改变)
Sourcepub fn similarity(&self, other: &ContentFingerprint) -> f64
pub fn similarity(&self, other: &ContentFingerprint) -> f64
计算与另一个指纹的相似度(0.0 ~ 1.0)
综合考虑文本哈希、结构哈希和元素数量的差异。
Trait Implementations§
Source§impl Clone for ContentFingerprint
impl Clone for ContentFingerprint
Source§fn clone(&self) -> ContentFingerprint
fn clone(&self) -> ContentFingerprint
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ContentFingerprint
impl Debug for ContentFingerprint
Source§impl<'de> Deserialize<'de> for ContentFingerprint
impl<'de> Deserialize<'de> for ContentFingerprint
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for ContentFingerprint
impl RefUnwindSafe for ContentFingerprint
impl Send for ContentFingerprint
impl Sync for ContentFingerprint
impl Unpin for ContentFingerprint
impl UnsafeUnpin for ContentFingerprint
impl UnwindSafe for ContentFingerprint
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