<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-rtcompat/src/impls/streamops.rs, branch arti-v1.7.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.7.0</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.7.0'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2025-04-09T16:25:51Z</updated>
<entry>
<title>Allow StreamOps import to be unused</title>
<updated>2025-04-09T16:25:51Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2025-04-09T16:25:51Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=f79bb13bbd55957a8e67725455cc8460f5064ee0'/>
<id>urn:sha1:f79bb13bbd55957a8e67725455cc8460f5064ee0</id>
<content type='text'>
This comes up on OSX; I hadn't seen it before, so I assume it is new
with Rust 1.86.
</content>
</entry>
<entry>
<title>tor-rtcompat: Fix doc warning.</title>
<updated>2025-01-15T13:49:17Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-01-09T13:33:20Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=b900e8b9e874498b37bede2d91ef2abfe71f6921'/>
<id>urn:sha1:b900e8b9e874498b37bede2d91ef2abfe71f6921</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-rtcompat: Add the ability to get a StreamOps handle.</title>
<updated>2025-01-15T13:49:17Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2025-01-08T11:06:59Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=267235969df65d975b5deb01c342e1073d4c3847'/>
<id>urn:sha1:267235969df65d975b5deb01c342e1073d4c3847</id>
<content type='text'>
Needed for cases where we wrap an object that implements `StreamOps` in
an external type, thereby losing access to the `StreamOps`
functionality. For example, during the channel handshake, we `.split()`
the stream that implements `StreamOps`, which leaves us with a
`SplitSink` and a `SplitStream`, neither of which implement `StreamOps`.
Getting a handle to the underlying object that implements `StreamOps`
(for example, a file handle) *before* the stream is `.split()` enables
us to use `StreamOps` to manipulate the underlying split stream.

This commit also introduces a special `UnsupportedStreamOpsHandle`,
which is a type that implements `StreamOps`, but always returns an
error. This type is meant to simplify error handling and usage, and is
meant to be used in cases where `StreamOps` is not supported. TODO: the
name of this type is pretty confusing (it's very similar to
`UnsupportedStreamOp`, which is an error type), and should probably be
renamed to something else (`NoOpStreamOpsHandle`,
`BrokenStreamOpsHandle`, `DummyStreamOpsHandle` come to mind...).

Note: this changes the `StreamOps` trait to be slightly different from
what I originally envisioned in !2660 and #1769
</content>
</entry>
<entry>
<title>streamops: Resolve unused-variable warnings.</title>
<updated>2024-12-12T17:11:52Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-12-12T17:11:52Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=3bd5afbeb2bb67804781cd0afce1eab9594571c7'/>
<id>urn:sha1:3bd5afbeb2bb67804781cd0afce1eab9594571c7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-rtcompat: Replace bad_api_usage with UnsupportedStreamOp (fmt).</title>
<updated>2024-12-10T10:34:48Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2024-12-09T17:02:08Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=b4bbf07cad23c3d3b0cf57d77b89dc75e0420db3'/>
<id>urn:sha1:b4bbf07cad23c3d3b0cf57d77b89dc75e0420db3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-rtcompat: Replace bad_api_usage with UnsupportedStreamOp.</title>
<updated>2024-12-10T10:34:48Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2024-12-09T15:27:37Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=2d40f6cbc12543c068764bcaed2bdf3e2c556550'/>
<id>urn:sha1:2d40f6cbc12543c068764bcaed2bdf3e2c556550</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-rtcompat: Add tests for set_tcp_notsent_lowat.</title>
<updated>2024-12-10T10:34:48Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2024-12-09T12:04:13Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=edd0b0ead79aa3e40f9f96348d99f98504d21ac0'/>
<id>urn:sha1:edd0b0ead79aa3e40f9f96348d99f98504d21ac0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tor-rtcompat: Implement StreamOps for all the stream types.</title>
<updated>2024-12-10T10:34:48Z</updated>
<author>
<name>Gabriela Moldovan</name>
<email>gabi@torproject.org</email>
</author>
<published>2024-12-05T15:00:11Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=56e9b79b09c65caee25a50c083fdd40f8c66f040'/>
<id>urn:sha1:56e9b79b09c65caee25a50c083fdd40f8c66f040</id>
<content type='text'>
Part of #1769
</content>
</entry>
</feed>
