summaryrefslogtreecommitdiffstats
path: root/vendor/gix-packetline-blocking
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-19 09:26:03 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-19 09:26:03 +0000
commit9918693037dce8aa4bb6f08741b6812923486c18 (patch)
tree21d2b40bec7e6a7ea664acee056eb3d08e15a1cf /vendor/gix-packetline-blocking
parentReleasing progress-linux version 1.75.0+dfsg1-5~progress7.99u1. (diff)
downloadrustc-9918693037dce8aa4bb6f08741b6812923486c18.tar.xz
rustc-9918693037dce8aa4bb6f08741b6812923486c18.zip
Merging upstream version 1.76.0+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/gix-packetline-blocking')
-rw-r--r--vendor/gix-packetline-blocking/.cargo-checksum.json2
-rw-r--r--vendor/gix-packetline-blocking/CHANGELOG.md115
-rw-r--r--vendor/gix-packetline-blocking/Cargo.toml11
-rw-r--r--vendor/gix-packetline-blocking/LICENSE-MIT2
-rw-r--r--vendor/gix-packetline-blocking/src/lib.rs8
-rw-r--r--vendor/gix-packetline-blocking/src/read/async_io.rs23
-rw-r--r--vendor/gix-packetline-blocking/src/read/blocking_io.rs24
-rw-r--r--vendor/gix-packetline-blocking/src/read/mod.rs4
-rw-r--r--vendor/gix-packetline-blocking/src/read/sidebands/async_io.rs4
9 files changed, 61 insertions, 132 deletions
diff --git a/vendor/gix-packetline-blocking/.cargo-checksum.json b/vendor/gix-packetline-blocking/.cargo-checksum.json
index c9d292a3a..c133ed45d 100644
--- a/vendor/gix-packetline-blocking/.cargo-checksum.json
+++ b/vendor/gix-packetline-blocking/.cargo-checksum.json
@@ -1 +1 @@
-{"files":{"CHANGELOG.md":"29585b54be080940ee24b96870e8d3519f4f11627aaba5c69bb4c2e3f383b0eb","Cargo.toml":"a792a04e9732ae311a689a4ba7a978dd9b3cc871ba6ee3e99c49a15ae3ed922e","LICENSE-APACHE":"cb4780590812826851ba250f90bed0ed19506ec98f6865a0e2e20bbf62391ff9","LICENSE-MIT":"49df47913ab2beafe8dc45607877ae64198bf0eee64aaad3e82ed9e4d27424e8","src/decode.rs":"8edad2d5aae96c384dc522ebdbf3b12224387cf8e6b4fadcefec88f72313f6b7","src/encode/async_io.rs":"a1d6f14a07c386c357359c8654597994e9206ad9fca24e09f4200767ecadcd81","src/encode/blocking_io.rs":"58526393c361fccb786b94d4170264199e0d9b4a93c6878de406d9747bf05f81","src/encode/mod.rs":"ad736f1730f056d4143575fdcd0931e6365912fb8629f0a5fa12a47ae3e93a2a","src/lib.rs":"53f89f86469f105b6701200e15ce9c1dddc9d0c0a41b3b9a0d4fa956f996566a","src/line/async_io.rs":"875ae42f351faf46b5df2db46fb1a291dc1d558ce79945f0bea5d47aecf6bef5","src/line/blocking_io.rs":"c89811d17365f57759d496d8d2d1a1c2c368c39182cda51e64a2d2a9b37d8aca","src/line/mod.rs":"0eb03c4086ef6508fe56a5f94dfda121c412344392d51c317069af2c5899944f","src/read/async_io.rs":"fe3124c2b55cd8dfef610b8e2e2bd069ff7f35ba547d2f7450a350d4a1b8692c","src/read/blocking_io.rs":"d18d67bf2d03f47c5d9212a4f9475021b6694a886a4be4101f0379bf2aa5351b","src/read/mod.rs":"61abd34a7127099cbf3f790b8700939b070a0a3212c9e18cfd28dd9fe918f949","src/read/sidebands/async_io.rs":"232cb87708264b52b48716ae398016a864fafc9e49a66cd17e0c6bf54ed9ecd5","src/read/sidebands/blocking_io.rs":"701f6785ba3063d97319ebfe3c7bf3edd977540872cffe5a5d6143178364fefd","src/read/sidebands/mod.rs":"8861e041d7da5d96fc0d4ae52f30d6ede64501b2de95cf866e85d26ce4255bc3","src/write/async_io.rs":"23a523c0fec725dded47d09a866c5f2d4fe837cc3466bf4e31b411b1f4e36af2","src/write/blocking_io.rs":"485baff59b71611b9f8e1b448ea954cafe8e3b57511aa2e50cf458685c3b42ed","src/write/mod.rs":"348a7a8b7aed93bbfaab61db91b54a0a7e57d2b7bb4622bdaa8eecda715189cb"},"package":"7d8395f7501c84d6a1fe902035fdfd8cd86d89e2dd6be0200ec1a72fd3c92d39"} \ No newline at end of file
+{"files":{"Cargo.toml":"bd48c6fba33fcb8788a3dd7b52de0ee51144538e750ba042075fecd7215e7b29","LICENSE-APACHE":"cb4780590812826851ba250f90bed0ed19506ec98f6865a0e2e20bbf62391ff9","LICENSE-MIT":"6f610e51b59dfbcbee281f58cc6d963bf716199dc7384dbaa94ccc3a6e343ce6","src/decode.rs":"8edad2d5aae96c384dc522ebdbf3b12224387cf8e6b4fadcefec88f72313f6b7","src/encode/async_io.rs":"a1d6f14a07c386c357359c8654597994e9206ad9fca24e09f4200767ecadcd81","src/encode/blocking_io.rs":"58526393c361fccb786b94d4170264199e0d9b4a93c6878de406d9747bf05f81","src/encode/mod.rs":"ad736f1730f056d4143575fdcd0931e6365912fb8629f0a5fa12a47ae3e93a2a","src/lib.rs":"bba9dccbe58f4c7ae9bbb56509af48ea9167a17ae32fce399a439d3b8a8bdead","src/line/async_io.rs":"875ae42f351faf46b5df2db46fb1a291dc1d558ce79945f0bea5d47aecf6bef5","src/line/blocking_io.rs":"c89811d17365f57759d496d8d2d1a1c2c368c39182cda51e64a2d2a9b37d8aca","src/line/mod.rs":"0eb03c4086ef6508fe56a5f94dfda121c412344392d51c317069af2c5899944f","src/read/async_io.rs":"7c096b3152f2554aa6d7f19d1c1bc55708798d53f1e8276d15c2cd39fbc6720b","src/read/blocking_io.rs":"72dd58cee7379074a8016f9e3bf558369539470baced2c39d1c5045f9d7ca38b","src/read/mod.rs":"2463328c8e1bd70dc2c529a001c56e9b4016593ce8bdd6aa79238e2e29228b95","src/read/sidebands/async_io.rs":"71aeb922dd7d98572a8cf0206ae7fc85ed1fca6b730238845cfd044be9b17e89","src/read/sidebands/blocking_io.rs":"701f6785ba3063d97319ebfe3c7bf3edd977540872cffe5a5d6143178364fefd","src/read/sidebands/mod.rs":"8861e041d7da5d96fc0d4ae52f30d6ede64501b2de95cf866e85d26ce4255bc3","src/write/async_io.rs":"23a523c0fec725dded47d09a866c5f2d4fe837cc3466bf4e31b411b1f4e36af2","src/write/blocking_io.rs":"485baff59b71611b9f8e1b448ea954cafe8e3b57511aa2e50cf458685c3b42ed","src/write/mod.rs":"348a7a8b7aed93bbfaab61db91b54a0a7e57d2b7bb4622bdaa8eecda715189cb"},"package":"50052c0f76c5af5acda41177fb55b60c1e484cc246ae919d8d21129cd1000a4e"} \ No newline at end of file
diff --git a/vendor/gix-packetline-blocking/CHANGELOG.md b/vendor/gix-packetline-blocking/CHANGELOG.md
deleted file mode 100644
index c1ffeab50..000000000
--- a/vendor/gix-packetline-blocking/CHANGELOG.md
+++ /dev/null
@@ -1,115 +0,0 @@
-# Changelog
-
-All notable changes to this project will be documented in this file.
-
-The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
-and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
-
-## 0.16.6 (2023-09-08)
-
-A maintenance release without user-facing changes.
-
-### Commit Statistics
-
-<csr-read-only-do-not-edit/>
-
- - 2 commits contributed to the release over the course of 17 calendar days.
- - 17 days passed between releases.
- - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
- - 0 issues like '(#ID)' were seen in commit messages
-
-### Commit Details
-
-<csr-read-only-do-not-edit/>
-
-<details><summary>view details</summary>
-
- * **Uncategorized**
- - Prepare changelogs for release ([`375db06`](https://github.com/Byron/gitoxide/commit/375db06a8442378c3f7a922fae38e2a6694d9d04))
- - Merge branch 'gix-submodule' ([`363ee77`](https://github.com/Byron/gitoxide/commit/363ee77400805f473c9ad66eadad9214e7ab66f4))
-</details>
-
-## 0.16.5 (2023-08-22)
-
-<csr-id-145125ab79526a6191a9192a6faa7fe1a8826935/>
-
-### Chore
-
- - <csr-id-145125ab79526a6191a9192a6faa7fe1a8826935/> use `faster-hex` instead of `hex`
- The performance here certainly doesn't make a difference, but we
- try to avoid duplicate dependencies.
-
-### Commit Statistics
-
-<csr-read-only-do-not-edit/>
-
- - 4 commits contributed to the release over the course of 5 calendar days.
- - 30 days passed between releases.
- - 1 commit was understood as [conventional](https://www.conventionalcommits.org).
- - 0 issues like '(#ID)' were seen in commit messages
-
-### Commit Details
-
-<csr-read-only-do-not-edit/>
-
-<details><summary>view details</summary>
-
- * **Uncategorized**
- - Release gix-date v0.7.3, gix-hash v0.12.0, gix-features v0.33.0, gix-actor v0.25.0, gix-object v0.35.0, gix-path v0.9.0, gix-glob v0.11.0, gix-quote v0.4.7, gix-attributes v0.17.0, gix-command v0.2.9, gix-packetline-blocking v0.16.5, gix-filter v0.3.0, gix-fs v0.5.0, gix-commitgraph v0.19.0, gix-hashtable v0.3.0, gix-revwalk v0.6.0, gix-traverse v0.31.0, gix-worktree-stream v0.3.0, gix-archive v0.3.0, gix-config-value v0.13.0, gix-tempfile v8.0.0, gix-lock v8.0.0, gix-ref v0.35.0, gix-sec v0.9.0, gix-config v0.28.0, gix-prompt v0.6.0, gix-url v0.22.0, gix-credentials v0.18.0, gix-diff v0.34.0, gix-discover v0.23.0, gix-ignore v0.6.0, gix-bitmap v0.2.7, gix-index v0.22.0, gix-mailmap v0.17.0, gix-negotiate v0.6.0, gix-pack v0.41.0, gix-odb v0.51.0, gix-pathspec v0.1.0, gix-packetline v0.16.5, gix-transport v0.35.0, gix-protocol v0.38.0, gix-revision v0.20.0, gix-refspec v0.16.0, gix-submodule v0.2.0, gix-worktree v0.24.0, gix-worktree-state v0.1.0, gix v0.52.0, gitoxide-core v0.31.0, gitoxide v0.29.0, safety bump 41 crates ([`30b2761`](https://github.com/Byron/gitoxide/commit/30b27615047692d3ced1b2d9c2ac15a80f79fbee))
- - Update changelogs prior to release ([`f23ea88`](https://github.com/Byron/gitoxide/commit/f23ea8828f2d9ba7559973daca388c9591bcc5fc))
- - Merge branch 'faster-hex' ([`4a4fa0f`](https://github.com/Byron/gitoxide/commit/4a4fa0fcdaa6e14b51d3f03f5d7c5b65042667bf))
- - Use `faster-hex` instead of `hex` ([`145125a`](https://github.com/Byron/gitoxide/commit/145125ab79526a6191a9192a6faa7fe1a8826935))
-</details>
-
-## 0.16.4 (2023-07-22)
-
-A maintenance release without user-facing changes.
-
-### Commit Statistics
-
-<csr-read-only-do-not-edit/>
-
- - 5 commits contributed to the release over the course of 1 calendar day.
- - 21 days passed between releases.
- - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
- - 0 issues like '(#ID)' were seen in commit messages
-
-### Commit Details
-
-<csr-read-only-do-not-edit/>
-
-<details><summary>view details</summary>
-
- * **Uncategorized**
- - Release gix-features v0.32.1, gix-actor v0.24.1, gix-validate v0.7.7, gix-object v0.33.1, gix-path v0.8.4, gix-glob v0.10.1, gix-quote v0.4.6, gix-attributes v0.16.0, gix-command v0.2.8, gix-packetline-blocking v0.16.4, gix-filter v0.2.0, gix-fs v0.4.1, gix-chunk v0.4.4, gix-commitgraph v0.18.1, gix-hashtable v0.2.4, gix-revwalk v0.4.1, gix-traverse v0.30.1, gix-worktree-stream v0.2.0, gix-archive v0.2.0, gix-config-value v0.12.5, gix-tempfile v7.0.1, gix-utils v0.1.5, gix-lock v7.0.2, gix-ref v0.33.1, gix-sec v0.8.4, gix-prompt v0.5.4, gix-url v0.21.1, gix-credentials v0.17.1, gix-diff v0.33.1, gix-discover v0.22.1, gix-ignore v0.5.1, gix-bitmap v0.2.6, gix-index v0.21.1, gix-mailmap v0.16.1, gix-negotiate v0.5.1, gix-pack v0.40.1, gix-odb v0.50.1, gix-packetline v0.16.4, gix-transport v0.34.1, gix-protocol v0.36.1, gix-revision v0.18.1, gix-refspec v0.14.1, gix-worktree v0.23.0, gix v0.50.0, safety bump 5 crates ([`16295b5`](https://github.com/Byron/gitoxide/commit/16295b58e2581d2e8b8b762816f52baabe871c75))
- - Prepare more changelogs ([`c4cc5f2`](https://github.com/Byron/gitoxide/commit/c4cc5f261d29f712a101033a18293a97a9d4ae85))
- - Release gix-date v0.7.1, gix-hash v0.11.4, gix-trace v0.1.3, gix-features v0.32.0, gix-actor v0.24.0, gix-validate v0.7.7, gix-object v0.33.0, gix-path v0.8.4, gix-glob v0.10.0, gix-quote v0.4.6, gix-attributes v0.15.0, gix-command v0.2.7, gix-packetline-blocking v0.16.3, gix-filter v0.1.0, gix-fs v0.4.0, gix-chunk v0.4.4, gix-commitgraph v0.18.0, gix-hashtable v0.2.4, gix-revwalk v0.4.0, gix-traverse v0.30.0, gix-worktree-stream v0.2.0, gix-archive v0.2.0, gix-config-value v0.12.4, gix-tempfile v7.0.1, gix-utils v0.1.5, gix-lock v7.0.2, gix-ref v0.33.0, gix-sec v0.8.4, gix-prompt v0.5.3, gix-url v0.21.0, gix-credentials v0.17.0, gix-diff v0.33.0, gix-discover v0.22.0, gix-ignore v0.5.0, gix-bitmap v0.2.6, gix-index v0.21.0, gix-mailmap v0.16.0, gix-negotiate v0.5.0, gix-pack v0.40.0, gix-odb v0.50.0, gix-packetline v0.16.4, gix-transport v0.34.0, gix-protocol v0.36.0, gix-revision v0.18.0, gix-refspec v0.14.0, gix-worktree v0.22.0, gix v0.49.1 ([`5cb3589`](https://github.com/Byron/gitoxide/commit/5cb3589b74fc5376e02cbfe151e71344e1c417fe))
- - Update changelogs prior to release ([`2fc66b5`](https://github.com/Byron/gitoxide/commit/2fc66b55097ed494b72d1af939ba5561f71fde97))
- - Update license field following SPDX 2.1 license expression standard ([`9064ea3`](https://github.com/Byron/gitoxide/commit/9064ea31fae4dc59a56bdd3a06c0ddc990ee689e))
-</details>
-
-## 0.16.3 (2023-07-01)
-
-The initial release of a crate that is a copy of `gix-packtline`, but pre-configured to use blocking IO.
-
-### Commit Statistics
-
-<csr-read-only-do-not-edit/>
-
- - 4 commits contributed to the release over the course of 1 calendar day.
- - 0 commits were understood as [conventional](https://www.conventionalcommits.org).
- - 0 issues like '(#ID)' were seen in commit messages
-
-### Commit Details
-
-<csr-read-only-do-not-edit/>
-
-<details><summary>view details</summary>
-
- * **Uncategorized**
- - Release gix-packetline-blocking v0.16.3, gix-filter v0.0.0 ([`fb3ad29`](https://github.com/Byron/gitoxide/commit/fb3ad29967d08558e42cbe8e80de5dd0b38f12c5))
- - Prepare changelog prior to release of `gix-filter` ([`fcdb042`](https://github.com/Byron/gitoxide/commit/fcdb0420511080ad95d417656aff68043acd6e54))
- - Merge branch 'filter-programs' ([`97f8e96`](https://github.com/Byron/gitoxide/commit/97f8e960ed52538bb55b72f9dfc5f9d144d72885))
- - A duplicate of the `gix-packetline` crate that mirrors it, but pre-selects the `blocking-io` feature. ([`2d83d88`](https://github.com/Byron/gitoxide/commit/2d83d8826bf3ebc6095288bd9770e338099a5017))
-</details>
-
diff --git a/vendor/gix-packetline-blocking/Cargo.toml b/vendor/gix-packetline-blocking/Cargo.toml
index 71f4e259b..f91d4329a 100644
--- a/vendor/gix-packetline-blocking/Cargo.toml
+++ b/vendor/gix-packetline-blocking/Cargo.toml
@@ -13,12 +13,11 @@
edition = "2021"
rust-version = "1.65"
name = "gix-packetline-blocking"
-version = "0.16.6"
+version = "0.17.0"
authors = ["Sebastian Thiel <sebastian.thiel@icloud.com>"]
include = [
"src/**/*",
"LICENSE-*",
- "CHANGELOG.md",
]
description = "A duplicate of `gix-packetline` with the `blocking-io` feature pre-selected"
license = "MIT OR Apache-2.0"
@@ -30,10 +29,6 @@ features = [
"blocking-io",
"serde",
]
-rustdoc-args = [
- "--cfg",
- "docsrs",
-]
[lib]
doctest = false
@@ -50,6 +45,9 @@ optional = true
[dependencies.faster-hex]
version = "0.8.0"
+[dependencies.gix-trace]
+version = "^0.1.4"
+
[dependencies.serde]
version = "1.0.114"
features = [
@@ -63,6 +61,7 @@ default-features = false
version = "1.0.34"
[features]
+async-io = []
blocking-io = []
default = ["blocking-io"]
serde = [
diff --git a/vendor/gix-packetline-blocking/LICENSE-MIT b/vendor/gix-packetline-blocking/LICENSE-MIT
index b58e818f1..97c2fa7d8 100644
--- a/vendor/gix-packetline-blocking/LICENSE-MIT
+++ b/vendor/gix-packetline-blocking/LICENSE-MIT
@@ -1,5 +1,3 @@
-MIT License
-
Copyright (c) 2018-2021 Sebastian Thiel, and [contributors](https://github.com/byron/gitoxide/contributors).
Permission is hereby granted, free of charge, to any person obtaining a copy
diff --git a/vendor/gix-packetline-blocking/src/lib.rs b/vendor/gix-packetline-blocking/src/lib.rs
index c5dce1c66..95ecd59d2 100644
--- a/vendor/gix-packetline-blocking/src/lib.rs
+++ b/vendor/gix-packetline-blocking/src/lib.rs
@@ -3,10 +3,10 @@
//! For reading the packet line format use the [`StreamingPeekableIter`], and for writing the [`Writer`].
//! ## Feature Flags
#![cfg_attr(
- feature = "document-features",
- cfg_attr(doc, doc = ::document_features::document_features!())
+ all(doc, all(doc, feature = "document-features")),
+ doc = ::document_features::document_features!()
)]
-#![cfg_attr(docsrs, feature(doc_cfg, doc_auto_cfg))]
+#![cfg_attr(all(doc, feature = "document-features"), feature(doc_cfg, doc_auto_cfg))]
#![deny(missing_docs, rust_2018_idioms, unsafe_code)]
const U16_HEX_BYTES: usize = 4;
@@ -91,6 +91,8 @@ pub struct StreamingPeekableIter<T> {
delimiters: &'static [PacketLineRef<'static>],
is_done: bool,
stopped_at: Option<PacketLineRef<'static>>,
+ #[cfg_attr(all(not(feature = "async-io"), not(feature = "blocking-io")), allow(dead_code))]
+ trace: bool,
}
/// Utilities to help decoding packet lines
diff --git a/vendor/gix-packetline-blocking/src/read/async_io.rs b/vendor/gix-packetline-blocking/src/read/async_io.rs
index 402c2434b..daa6bf4f8 100644
--- a/vendor/gix-packetline-blocking/src/read/async_io.rs
+++ b/vendor/gix-packetline-blocking/src/read/async_io.rs
@@ -44,12 +44,30 @@ where
delimiters: &[PacketLineRef<'static>],
fail_on_err_lines: bool,
buf_resize: bool,
+ trace: bool,
) -> ExhaustiveOutcome<'a> {
(
false,
None,
Some(match Self::read_line_inner(reader, buf).await {
Ok(Ok(line)) => {
+ if trace {
+ match line {
+ #[allow(unused_variables)]
+ PacketLineRef::Data(d) => {
+ gix_trace::trace!("<< {}", d.as_bstr().trim().as_bstr());
+ }
+ PacketLineRef::Flush => {
+ gix_trace::trace!("<< FLUSH");
+ }
+ PacketLineRef::Delimiter => {
+ gix_trace::trace!("<< DELIM");
+ }
+ PacketLineRef::ResponseEnd => {
+ gix_trace::trace!("<< RESPONSE_END");
+ }
+ }
+ }
if delimiters.contains(&line) {
let stopped_at = delimiters.iter().find(|l| **l == line).copied();
buf.clear();
@@ -111,6 +129,7 @@ where
self.delimiters,
self.fail_on_err_lines,
false,
+ self.trace,
)
.await;
self.is_done = is_done;
@@ -119,7 +138,8 @@ where
}
}
- /// Peek the next packet line without consuming it.
+ /// Peek the next packet line without consuming it. Returns `None` if a stop-packet or an error
+ /// was encountered.
///
/// Multiple calls to peek will return the same packet line, if there is one.
pub async fn peek_line(&mut self) -> Option<io::Result<Result<PacketLineRef<'_>, decode::Error>>> {
@@ -134,6 +154,7 @@ where
self.delimiters,
self.fail_on_err_lines,
true,
+ self.trace,
)
.await;
self.is_done = is_done;
diff --git a/vendor/gix-packetline-blocking/src/read/blocking_io.rs b/vendor/gix-packetline-blocking/src/read/blocking_io.rs
index 50c634c4c..3e74e47f1 100644
--- a/vendor/gix-packetline-blocking/src/read/blocking_io.rs
+++ b/vendor/gix-packetline-blocking/src/read/blocking_io.rs
@@ -38,12 +38,30 @@ where
delimiters: &[PacketLineRef<'static>],
fail_on_err_lines: bool,
buf_resize: bool,
+ trace: bool,
) -> ExhaustiveOutcome<'a> {
(
false,
None,
Some(match Self::read_line_inner(reader, buf) {
Ok(Ok(line)) => {
+ if trace {
+ match line {
+ #[allow(unused_variables)]
+ PacketLineRef::Data(d) => {
+ gix_trace::trace!("<< {}", d.as_bstr().trim().as_bstr());
+ }
+ PacketLineRef::Flush => {
+ gix_trace::trace!("<< FLUSH");
+ }
+ PacketLineRef::Delimiter => {
+ gix_trace::trace!("<< DELIM");
+ }
+ PacketLineRef::ResponseEnd => {
+ gix_trace::trace!("<< RESPONSE_END");
+ }
+ }
+ }
if delimiters.contains(&line) {
let stopped_at = delimiters.iter().find(|l| **l == line).copied();
buf.clear();
@@ -66,6 +84,7 @@ where
if buf_resize {
buf.resize(len, 0);
}
+ // TODO(borrowchk): remove additional decoding of internal buffer which is needed only to make it past borrowchk
Ok(Ok(crate::decode(buf).expect("only valid data here")))
}
Ok(Err(err)) => {
@@ -105,6 +124,7 @@ where
self.delimiters,
self.fail_on_err_lines,
false,
+ self.trace,
);
self.is_done = is_done;
self.stopped_at = stopped_at;
@@ -112,7 +132,8 @@ where
}
}
- /// Peek the next packet line without consuming it.
+ /// Peek the next packet line without consuming it. Returns `None` if a stop-packet or an error
+ /// was encountered.
///
/// Multiple calls to peek will return the same packet line, if there is one.
pub fn peek_line(&mut self) -> Option<io::Result<Result<PacketLineRef<'_>, decode::Error>>> {
@@ -127,6 +148,7 @@ where
self.delimiters,
self.fail_on_err_lines,
true,
+ self.trace,
);
self.is_done = is_done;
self.stopped_at = stopped_at;
diff --git a/vendor/gix-packetline-blocking/src/read/mod.rs b/vendor/gix-packetline-blocking/src/read/mod.rs
index 0fd30c892..c9d01c1ab 100644
--- a/vendor/gix-packetline-blocking/src/read/mod.rs
+++ b/vendor/gix-packetline-blocking/src/read/mod.rs
@@ -43,7 +43,8 @@ pub use error::Error;
impl<T> StreamingPeekableIter<T> {
/// Return a new instance from `read` which will stop decoding packet lines when receiving one of the given `delimiters`.
- pub fn new(read: T, delimiters: &'static [PacketLineRef<'static>]) -> Self {
+ /// If `trace` is `true`, all packetlines received or sent will be passed to the facilities of the `gix-trace` crate.
+ pub fn new(read: T, delimiters: &'static [PacketLineRef<'static>], trace: bool) -> Self {
StreamingPeekableIter {
read,
#[cfg(any(feature = "blocking-io", feature = "async-io"))]
@@ -53,6 +54,7 @@ impl<T> StreamingPeekableIter<T> {
fail_on_err_lines: false,
is_done: false,
stopped_at: None,
+ trace,
}
}
diff --git a/vendor/gix-packetline-blocking/src/read/sidebands/async_io.rs b/vendor/gix-packetline-blocking/src/read/sidebands/async_io.rs
index 37f93bca9..55c7bce26 100644
--- a/vendor/gix-packetline-blocking/src/read/sidebands/async_io.rs
+++ b/vendor/gix-packetline-blocking/src/read/sidebands/async_io.rs
@@ -80,12 +80,12 @@ mod tests {
/// We want to declare items containing pointers of `StreamingPeekableIter` `Send` as well, so it must be `Send` itself.
#[test]
fn streaming_peekable_iter_is_send() {
- receiver(StreamingPeekableIter::new(Vec::<u8>::new(), &[]));
+ receiver(StreamingPeekableIter::new(Vec::<u8>::new(), &[], false));
}
#[test]
fn state_is_send() {
- let mut s = StreamingPeekableIter::new(Vec::<u8>::new(), &[]);
+ let mut s = StreamingPeekableIter::new(Vec::<u8>::new(), &[], false);
receiver(State::Idle { parent: Some(&mut s) });
}
}