<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-proto/src/util, branch arti-v1.3.0</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.3.0</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.3.0'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2024-10-03T14:10:47Z</updated>
<entry>
<title>tor-proto: Remove the no-longer needed allows</title>
<updated>2024-10-03T14:10:47Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2024-10-02T15:52:30Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=92d311f0bb91f4e3a52c1f567f96d8bd8c66d66f'/>
<id>urn:sha1:92d311f0bb91f4e3a52c1f567f96d8bd8c66d66f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-proto: Provide a variant for memquota errors</title>
<updated>2024-10-03T14:10:35Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2024-09-23T10:23:00Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=8d11048818c4889451f242d0ea6a95ff11f68ba9'/>
<id>urn:sha1:8d11048818c4889451f242d0ea6a95ff11f68ba9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-proto: SometimesUnboundedSink: provide as_inner accessor</title>
<updated>2024-10-02T15:05:12Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2024-09-26T16:31:40Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=e0eeed2d91802e77e5a189ee7dd4178b14a1813a'/>
<id>urn:sha1:e0eeed2d91802e77e5a189ee7dd4178b14a1813a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix typos</title>
<updated>2024-09-03T08:09:02Z</updated>
<author>
<name>Dimitris Apostolou</name>
<email>dimitris.apostolou@icloud.com</email>
</author>
<published>2024-09-03T08:09:02Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=676f913463b7d84f34dd6101b99d03ef79cf57ad'/>
<id>urn:sha1:676f913463b7d84f34dd6101b99d03ef79cf57ad</id>
<content type='text'>
</content>
</entry>
<entry>
<title>extract tor_async_utils::oneshot into ::oneshot-fused-workaround</title>
<updated>2024-08-28T14:27:46Z</updated>
<author>
<name>Jim Newsome</name>
<email>jnewsome@torproject.org</email>
</author>
<published>2024-08-22T19:20:36Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=46f7f01092e6ac55e3e958dc3a2228b1d36e26a1'/>
<id>urn:sha1:46f7f01092e6ac55e3e958dc3a2228b1d36e26a1</id>
<content type='text'>
Having this in the `tor-async-utils` crate prevents us from doing both
of the following without introducing a circular dependency:

* using it in `tor-rtmock` (which we currently do, particularly in
  tests).
* using `tor-rtmock` to test things in `tor-async-utils`. We don't do
  this yet, but it is generally sensible to do so. In particular we
  want to move the `stream_peak` module there, which is currently tested
  with `tor-rtmock`.

Moving this into its own crate avoids this circular dependency.
</content>
</entry>
<entry>
<title>StreamPollSet: disallow polling ready streams</title>
<updated>2024-08-21T18:30:55Z</updated>
<author>
<name>Jim Newsome</name>
<email>jnewsome@torproject.org</email>
</author>
<published>2024-08-15T01:00:36Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=c29e83c40053b172f6d80751c215196a66264af9'/>
<id>urn:sha1:c29e83c40053b172f6d80751c215196a66264af9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-proto: Use PeekableStream to get rid of redundant buffering</title>
<updated>2024-08-21T18:30:55Z</updated>
<author>
<name>Jim Newsome</name>
<email>jnewsome@torproject.org</email>
</author>
<published>2024-08-14T20:41:14Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=41cbc63cb172c851f3b58ef0727aa1dfde363bcc'/>
<id>urn:sha1:41cbc63cb172c851f3b58ef0727aa1dfde363bcc</id>
<content type='text'>
* Update `StreamPollSet` to require that its streams implement
  `PeekableStream`, and to not do its own buffering of values read from
  the stream.

  This avoids an extra layer of buffering for streams that already
  buffer a value, and makes the interior state a little simpler and more
  robust.

  It does have a downside of making the API a little less convenient,
  since the caller must do its own `poll_peek` call if it wants a
  reference to the item.

* Update `StreamMap` to implement `PeekableStream` for
  `OpenStreamEntStream`, as it must to satisfy the updated
  `StreamPollSet` API. We have to somewhat constrain the
  `poll_ready_streams_iter` API to no longer return both a reference to
  the stream and the message. I don't see a way to return both
  while satisfying the borrow checker. Luckily we don't really need both
  anymore.

* Update the Circuit reactor to handle the updated
  `StreamMap::poll_ready_streams_iter` API.
</content>
</entry>
<entry>
<title>StreamPollSet: remove redundant type parameter V</title>
<updated>2024-08-12T21:26:36Z</updated>
<author>
<name>Jim Newsome</name>
<email>jnewsome@torproject.org</email>
</author>
<published>2024-08-12T21:24:16Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=70f094f7654facd5536d897e6ef7af1038e38082'/>
<id>urn:sha1:70f094f7654facd5536d897e6ef7af1038e38082</id>
<content type='text'>
This was required to be the same type as `S::Item`. We can just use
`S::Item` directly.
</content>
</entry>
<entry>
<title>StreamPollSet: replace nested Option</title>
<updated>2024-08-08T21:30:21Z</updated>
<author>
<name>Jim Newsome</name>
<email>jnewsome@torproject.org</email>
</author>
<published>2024-08-08T20:40:04Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=124bec3795ba0928d4f93c226ac8e2e392812949'/>
<id>urn:sha1:124bec3795ba0928d4f93c226ac8e2e392812949</id>
<content type='text'>
Bullied by clippy. I'm on the fence whether this is actually an
improvement, or whether I should add an exception.

```
error: consider using `Option&lt;T&gt;` instead of `Option&lt;Option&lt;T&gt;&gt;` or a custom enum if you need to distinguish all 3 cases
   --&gt; crates/tor-proto/src/util/stream_poll_set.rs:106:56
    |
106 |     pub fn remove(&amp;mut self, key: &amp;K) -&gt; Option&lt;(K, P, Option&lt;Option&lt;V&gt;&gt;, S)&gt; {
    |                                                        ^^^^^^^^^^^^^^^^^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_option
    = note: `-D clippy::option-option` implied by `-D warnings`
    = help: to override `-D warnings` add `#[allow(clippy::option_option)]`
```
</content>
</entry>
<entry>
<title>StreamMap: Merge rxs into open_streams</title>
<updated>2024-08-08T21:30:21Z</updated>
<author>
<name>Jim Newsome</name>
<email>jnewsome@torproject.org</email>
</author>
<published>2024-08-08T20:19:39Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=91855b9a10a50a3b63cf178995d3b4641950e5ed'/>
<id>urn:sha1:91855b9a10a50a3b63cf178995d3b4641950e5ed</id>
<content type='text'>
This simplifies the bookkeeping a bit, and clears a path towards
updating the Streams in our StreamPollSet to directly respect flow
control.
</content>
</entry>
</feed>
