Introduce a new fingerprint field to TextSummary

This is calculated in `Rope` and uses the `bromberg_sl2` homomorphic
hash function to determine the fingerprint of a single chunk and
compose each chunk fingerprint into a single fingerprint for the entire
rope that is equivalent to hashing all the rope's bytes at once.
This commit is contained in:
Antonio Scandurra
2022-06-17 12:12:37 +02:00
parent cef85f5d84
commit c31a233aad
6 changed files with 33 additions and 22 deletions
Generated
+20
View File
@@ -561,6 +561,18 @@ dependencies = [
"workspace",
]
[[package]]
name = "bromberg_sl2"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2ed88064f69518b7e3ea50ecfc1b61d43f19248618a377b95ae5c8b611134d4d"
dependencies = [
"digest 0.9.0",
"lazy_static",
"rayon",
"seq-macro",
]
[[package]]
name = "bstr"
version = "0.2.17"
@@ -4156,6 +4168,12 @@ dependencies = [
"pest",
]
[[package]]
name = "seq-macro"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a9f47faea3cad316faa914d013d24f471cd90bfca1a0c70f05a3f42c6441e99"
[[package]]
name = "serde"
version = "1.0.137"
@@ -4806,9 +4824,11 @@ version = "0.1.0"
dependencies = [
"anyhow",
"arrayvec 0.7.2",
"bromberg_sl2",
"clock",
"collections",
"ctor",
"digest 0.9.0",
"env_logger",
"gpui",
"lazy_static",