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
9e45ba1032
Impl new RAII type helpers::flock::FileLock
...
that locks a file exclusive or shared
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 19:48:37 +10:00
Jiahao XU
751cf47716
Add new dep fs4 v0.6.2
...
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 19:42:33 +10:00
Jiahao XU
95c30122e9
Rm unused import tempfile::TempDir
in main.rs
...
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 19:17:23 +10:00
Jiahao XU
fb35863faa
Create temp_dir
in install_path
...
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 19:17:09 +10:00
Jiahao XU
d21dde4889
Merge pull request #226 from NobodyXu/fix/metafile-update
...
Fix race condition when updating metafile
2022-07-22 19:15:36 +10:00
Jiahao XU
92f4d0af95
Fix metafile updating: Update them in entry
only
...
to avoid race condition.
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-22 17:58:29 +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
6964eee5d1
Merge pull request #223 from NobodyXu/fix/join-err
...
Fix: join err handling, unify it using `BinstallError`
2022-07-22 11:29:21 +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
4716389a52
Merge pull request #221 from NobodyXu/optimize
...
Minor Optimization
2022-07-22 11:27:13 +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
adc0a22a50
Rm unused variant MainExit::JoinErr
...
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-21 20:44:13 +10:00
Jiahao XU
d39bc0acab
Construct BinstallError
from JoinError
in main
...
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-21 20:43:47 +10:00
Jiahao XU
6e5ecc46cf
Construct BinstallError
from JoinError
in await_task
...
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-21 20:41:16 +10:00
Jiahao XU
46cf20a3f7
Add new variant BinstallError::TaskJoinError
...
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-21 20:40:31 +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
4f0f01b75c
Fix typo in impl Version for crates_io_api::Version
...
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-21 19:20:21 +10:00
Jiahao XU
e308b275d5
Optimize and generalize find_version
...
- Rm the process of collecting into `BTreeMap` in `find_version`.
- Accept any type that implements trait `Version`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-21 19:19:50 +10:00
Jiahao XU
b2d09e2b13
Rm unused derive(Clone)
for DesiredTargets
...
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-21 15:07:09 +10:00
Jiahao XU
eda7b9445a
Rm unnecessary Arc
inside DesiredTargetsInner
...
Since `DesiredTargets` is now stored in `binstall::Options`, which
itself is wrapped in an `Arc`, `DesiredTargetsInner::Initialized` no
longer needs an `Arc` for O(1) `clone`.
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-21 15:06:00 +10:00
Jiahao XU
6a95bb07e0
Add field desired_targets
to binstall::Options
...
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-21 15:05:12 +10:00
Jiahao XU
aa88dce215
Add field cli_overrides
to binstall::Options
...
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-21 15:00:01 +10:00
Jiahao XU
f09004b5b7
Optimize: Share crates_io_api::AsyncClient
...
So that the connection pool and the rate limit will be shared.
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-21 14:50:51 +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
305a4e4c30
Improve err msg in MultiFetcher::first_available
...
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-21 13:07:20 +10:00
Jiahao XU
dc8d8ccd88
Optimize MultiFetcher
: Start check
ing ASAP
...
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-21 13:06:34 +10:00
Jiahao XU
6180e9ec3e
Add comment in fn resolve
...
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-21 13:00:58 +10:00
Jiahao XU
c418c2dbbe
Optimize arg parsing: Avoid O(n) Vec::remove
...
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-21 12:44:54 +10:00
Jiahao XU
ef72f851f7
Merge pull request #220 from NobodyXu/fix
...
Forbid --manifest-path to used with batch installation
2022-07-20 19:39:38 +10:00
Jiahao XU
cfe7703af9
Forbid --manifest-path
to used with batch installation
...
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-20 19:11:02 +10:00
Jiahao XU
08190ac179
Add ManifestPathConflictedWithBatchInstallation
...
to error `BinstallError`
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-20 19:09:59 +10:00
Jiahao XU
bcb97803c3
Merge pull request #219 from NobodyXu/dep
...
Enable feature "static" of dep xz2 & Disable all features of dep zstd
2022-07-20 18:57:35 +10:00
Jiahao XU
f7af4efa22
Disable feature flag "thin" of dep zstd
...
attempt to fix the CI
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-20 18:26:45 +10:00
Jiahao XU
f59d081733
Only enable feature "thin" of dep zstd
...
Disable "bindgen" that creates a bindgen at build time, which takes
quite some time and pulls in dep "bindgen" at bulid time.
Also disable feature "zstdmt" as we don't need multithreading here.
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-20 18:18:39 +10:00
Jiahao XU
1e81babea8
Enable feature "static" of dep xz2
...
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-20 18:14:17 +10:00
Jiahao XU
15e0b22e50
Merge pull request #217 from NobodyXu/refactor
...
Refactor: Extract new mod `binstall`
2022-07-20 18:12:26 +10:00
Jiahao XU
9d6ed81d74
Merge pull request #218 from NobodyXu/optimize
...
Use `opt-level = "z"` for release
2022-07-20 18:11:02 +10:00
Jiahao XU
6324f9a7ca
Use opt-level = "z"
for release
...
On M1 MacOS Darwin 21.5, this produces binary that is 0.3M smaller while
taking 10s less to build.
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
2022-07-20 18:00:22 +10:00