Commit graph

37 commits

Author SHA1 Message Date
Jiahao XU
cbd64b039d
Rename binstall_v1::Item to MetaData
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-27 18:50:21 +10:00
Jiahao XU
951a0f8b9f
Impl binstall_v1::default_path
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-27 18:39:22 +10:00
Jiahao XU
c6c5dcd79f
Rename binstall_v1::Entry to Item
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-26 22:47:57 +10:00
Jiahao XU
f0b6b7b1af
Impl binstall_v1::append_to_path
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-26 22:45:59 +10:00
Jiahao XU
461571075d
Impl binstall_v1::Error
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-26 22:45:48 +10:00
Jiahao XU
172af54cd8
Impl metafiles::binstall_v1::{Entry, Source}
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-26 22:29:10 +10:00
Jiahao XU
f7c798352a
Enable feature serde of semver
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-26 21:57:57 +10:00
Jiahao XU
2dc246c392
Optimize CratesToml: Use CompactString for bins
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-26 13:48:04 +10:00
Jiahao XU
03c8295cd8
Optimize CratesToml: Use Vec instead of BTreeSet
for storing bins.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-26 13:43:30 +10:00
Félix Saparelli
6401f2bfa0
Replace toml with toml_edit (#233) 2022-07-24 03:33:55 +12:00
Félix Saparelli
e93f0beb4b
Remove support for .crates2.json (#235) 2022-07-24 03:33:31 +12:00
Jiahao XU
6ce48419b6
Fix CratesToml::write_to_{writer, file}
Make them consistent with `Crates2Json::write_to_{writer, file}`

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 22:55:44 +10:00
Jiahao XU
0a753f3e4b
Fix Crates2Json::append_to_path: Use file lock
to fix race condition.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 22:50:58 +10:00
Jiahao XU
d432d54c28
Add new fn Crates2Json::write_to_file
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 22:48:54 +10:00
Jiahao XU
1766b92547
Add new fn Crates2Json::write_to_writer
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 22:45:55 +10:00
Jiahao XU
15e2213225
Add new fn Crates2Json::load_from_reader
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 22:44:28 +10:00
Jiahao XU
d7bd96660e
Fix CratesToml::append_to_path: Lock file to avoid race condition
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 22:22:31 +10:00
Jiahao XU
e1b6fb85aa
Add new fn CratesToml::write_to_file
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 22:22:18 +10:00
Jiahao XU
7311f77f29
Impl new fn CratesToml::write_to_writer
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 20:19:04 +10:00
Jiahao XU
565b404dce
Impl fn CratesToml::load_from_reader
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 20:15:03 +10:00
Jiahao XU
488e7b8492
Update CratesToml::append to accept iter
intead of one single pair of value.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 17:57:51 +10:00
Jiahao XU
739b3ee247
Update Crates2Json::append to accept iter
instead of one single pair of value.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 17:57:25 +10:00
Jiahao XU
adbc587f3b
Merge pull request #222 from NobodyXu/refactor
Refactor: Make appending to metafiles easier and fix their err handling
2022-07-22 11:29:12 +10:00
Jiahao XU
32b98f0c5a
Fix Deserialize for CrateVersionSource
Use `Cow::<'_, str>::deserialize` to ensure that it would still work
even if it contains escaped characters.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 01:43:40 +10:00
Jiahao XU
a3fcc298ab
Avoid CrateVersionSource::clone for insertion in metafiles
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 01:38:44 +10:00
Jiahao XU
de9404feda
Optimize Crates2Json: Use String as key
to avoid cost of deserializing (`CrateVersionSource::from_str`).

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 01:37:27 +10:00
Jiahao XU
96aaca1cc6
Optimize CratesToml: Use String as key
to avoid cost of deserializing (`CrateVersionSource::from_str`).

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 01:36:22 +10:00
Jiahao XU
9d9a31bef3
Optimize Deserialize impl for CrateVersionSource
Use `<&str>::deserialize` instead of `String::deserialize` to avoid
intermediate `String`.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 01:23:58 +10:00
Jiahao XU
c2ce265afa
Optimize Crates2Json::write_to_path: Use to_writer
which avoids allocating a `Vec<u8>` just to hold serialized data.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-21 22:18:08 +10:00
Jiahao XU
d7ae1f242b
Optimize Crates2Json::load_from_path: Use from_reader
which avoids reading the entire file into string at once.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-21 22:14:20 +10:00
Jiahao XU
fb3e35624b
Fix err handling in Crates2Json::append_to_path
Only uses `Self::default()` if the file is not found.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-21 19:59:36 +10:00
Jiahao XU
1e725a9ffe
Refactor: Extract Crates2Json::append{_to_path}
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-21 19:58:23 +10:00
Jiahao XU
0157a594e6
Fix err handling in CratesToml::append_to_path
Make it more robust to `io::Error`: Only create a `Self::default()` if
fails to open the file.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-21 19:54:45 +10:00
Jiahao XU
31d9716d28
Refactor: Extract CratesToml::append{_to_path}
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-21 19:50:23 +10:00
Jiahao XU
21eac33e1f
Optimize: Create new fn helpers::cargo_home
that caches return value of `home::cargo_home`

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-21 13:13:07 +10:00
Jiahao XU
5bdffd9178
Refactor: Impl Source::cratesio_registry
Makes initializing `metafiles::CrateVersionSource` more readable and
improves performance since the parsing is now cached.

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-20 16:48:34 +10:00
Félix Saparelli
17cf6f5dc5
Write to .crates2.json 2022-07-05 21:17:59 +12:00