<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-rpcbase/src/method.rs, 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-24T01:35:05Z</updated>
<entry>
<title>rpc: Simplify method-dispatch-bypass logic a bit</title>
<updated>2024-10-24T01:35:05Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-10-24T00:33:55Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=eb1d9acd10c5d500f56d637a7bba3acdd67dc9e8'/>
<id>urn:sha1:eb1d9acd10c5d500f56d637a7bba3acdd67dc9e8</id>
<content type='text'>
This commit removes the separate function for asking whether to
bypass the dispatch code.  Instead, it gives the "invoke with
bypass" function an error to return when no dispatch is warranted,
and moves the whole responsibility for method dispatch or
non-dispatch back into tor-rpcbase.

I had to add an ObjectId argument to `invoke_rpc_method` to make
this work, but that's probably a good thing.

Additionally, this commit tweaks the derive-deftly macro to prevent
you from asking for dispatch bypass on special methods, where it
isn't implemented (and doesn't really make sense).
</content>
</entry>
<entry>
<title>rpc: Add a mechanism for method that bypass regular dispatch</title>
<updated>2024-10-24T01:35:05Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-10-22T13:50:00Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=d6367f61169fd21830aeb37d8952b9f6792cb115'/>
<id>urn:sha1:d6367f61169fd21830aeb37d8952b9f6792cb115</id>
<content type='text'>
I'm about to use this for rpc:release, which is special
because it doesn't actually look at the type of the object that it's
invoked on.  Later it might be useful for manipulating weakrefs,
cloning referenes, detecting reference equality, etc.
</content>
</entry>
<entry>
<title>rpcbase: Facility for looking up RPC method information</title>
<updated>2024-08-13T00:19:20Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-08-12T14:09:54Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=5883a585d74e2e95a13fd804b3281f72dd57525b'/>
<id>urn:sha1:5883a585d74e2e95a13fd804b3281f72dd57525b</id>
<content type='text'>
We'll need this to refer to the names of RPC methods as visible to
the caller, and to cross-reference them  with their related types.
</content>
</entry>
<entry>
<title>rpc: Refactor errors part 1: a new RpcMethod trait.</title>
<updated>2024-07-25T12:43:30Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-07-23T17:23:58Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=c7c630c44d9e937d7185f591d75fd42c33ab5238'/>
<id>urn:sha1:c7c630c44d9e937d7185f591d75fd42c33ab5238</id>
<content type='text'>
It is no longer necessary to say, for every RPC method,
that its error type is RpcError.
</content>
</entry>
<entry>
<title>rpcbase: Replace a TODO with a set of notes and caveats</title>
<updated>2024-07-25T12:43:30Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-07-23T14:20:15Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=593e0dfbc0da6ef4d3ed6e403122b178432eb571'/>
<id>urn:sha1:593e0dfbc0da6ef4d3ed6e403122b178432eb571</id>
<content type='text'>
We have decided not to remove the "anybody can define methods"
property.  This commit documents the consequences, and warns
extenders away from some really bad ideas.
</content>
</entry>
<entry>
<title>rpc: Tests for method name checking.</title>
<updated>2024-07-15T15:30:52Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-07-15T15:30:52Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=45941b5fff66036a0833e21bb929bb19fef8a25a'/>
<id>urn:sha1:45941b5fff66036a0833e21bb929bb19fef8a25a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Change deftly syntax to post 0.12.1 version</title>
<updated>2024-06-17T18:13:06Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2024-06-17T17:33:09Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=dddf07561868579ea687eeadaa8f863aa833c764'/>
<id>urn:sha1:dddf07561868579ea687eeadaa8f863aa833c764</id>
<content type='text'>
 * Change `pub` to `export`
 * Change the `=` in define to `:`
 * Change `pub_template_semver_check` to `template_export_semver_check`

Right now, 0.12.1 supports both syntaxes.  I have verified this branch
also compiles with
  https://gitlab.torproject.org/Diziet/rust-derive-deftly/-/merge_requests/402
  ee171ffaf56d7dcb7d75584054921153fe19b222
</content>
</entry>
<entry>
<title>Add a few "TODO RPC" notes</title>
<updated>2024-05-16T12:40:06Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-05-16T12:35:18Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=854b1507c95ca7edde01c545b0c7375912168944'/>
<id>urn:sha1:854b1507c95ca7edde01c545b0c7375912168944</id>
<content type='text'>
</content>
</entry>
<entry>
<title>RPC: Fill in documentation about invoke_special</title>
<updated>2024-05-16T12:40:06Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-05-14T18:45:48Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=69510aaa1750362d6df9d7e92b9b139d70071e17'/>
<id>urn:sha1:69510aaa1750362d6df9d7e92b9b139d70071e17</id>
<content type='text'>
</content>
</entry>
<entry>
<title>RPC: Require an Error type in methods.</title>
<updated>2024-05-16T12:40:06Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-05-14T18:19:30Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=98765e5a4cdf70356db38d324b0896d2b6f83c2f'/>
<id>urn:sha1:98765e5a4cdf70356db38d324b0896d2b6f83c2f</id>
<content type='text'>
This is needed so that we can cast special methods' return types
properly.

I wish I could make this optional, but Rust doesn't allow
defaulting an associated type.
</content>
</entry>
</feed>
