<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/tor-rpcbase/src/method.rs, branch arti-v1.2.5</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.2.5</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.2.5'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2024-06-17T18:13:06Z</updated>
<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>
<entry>
<title>Relax Serialize requirement on method outputs.</title>
<updated>2024-05-16T12:40:06Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-05-14T17:36:17Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=704b1ec7f9e92208b548ebf0e9ee50adfe9aa0d0'/>
<id>urn:sha1:704b1ec7f9e92208b548ebf0e9ee50adfe9aa0d0</id>
<content type='text'>
Now Methods can return anything; and only if their outputs are
Serialize will they implement RpcInvocable.
</content>
</entry>
<entry>
<title>rpc: Move typetag onto subtrait of DynMethod</title>
<updated>2024-05-16T12:40:04Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-05-14T15:21:02Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=0e8608ba76f61a401040c8f762b99e5f3965d8e8'/>
<id>urn:sha1:0e8608ba76f61a401040c8f762b99e5f3965d8e8</id>
<content type='text'>
This will allow us to create dispatchable methods that are only
invoked from inside the arti code, and are not themselves
serializable.
</content>
</entry>
<entry>
<title>RPC: Enforce method name format.</title>
<updated>2024-05-14T13:39:47Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-05-14T13:35:19Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=8da4b96991c01ff16bd1194bca77d9bedf0bb9fa'/>
<id>urn:sha1:8da4b96991c01ff16bd1194bca77d9bedf0bb9fa</id>
<content type='text'>
We need to do this carefully, since we want our system to be
extensible with new namespaces.

First, when we are constructing an RpcMgr, we _warn_ about any
method names that are misformed.

Second, we add a test in the `arti` crate to fail if any method
names are invalid.  This will only catch method names in crates that
`arti` depends on.
</content>
</entry>
<entry>
<title>rpc: Remove a limitation on DynMethod macro.</title>
<updated>2024-05-06T13:12:08Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-04-24T15:08:16Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=4f414cbbdac72433a21642beb352dc69348b8525'/>
<id>urn:sha1:4f414cbbdac72433a21642beb352dc69348b8525</id>
<content type='text'>
It no longer requires the user to have `typetag` in scope.
</content>
</entry>
<entry>
<title>rpc: Revise backend for dispatchable-object macro.</title>
<updated>2024-04-22T16:02:29Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-04-11T14:44:17Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=640af8c9c7f79ca033d766391b12c2f30a7f26fd'/>
<id>urn:sha1:640af8c9c7f79ca033d766391b12c2f30a7f26fd</id>
<content type='text'>
The trick here is to provide an `Invoker` trait,
with blanket implementations for appropriate `fn(_,_,_,_?) -&gt; _`.
With this trick, we no longer need to have a `decl_rpc_invoke_fn`.

This lets us discard HasConstTypeId entirely,
and will let us simplify some other syntax moving forward.
</content>
</entry>
<entry>
<title>rpc: Move deftly attributes into an `rpc` namespace.</title>
<updated>2024-04-11T12:56:53Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-04-11T12:56:53Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=f96ca62bed8bd1ab42fc069331aef049e9c4515e'/>
<id>urn:sha1:f96ca62bed8bd1ab42fc069331aef049e9c4515e</id>
<content type='text'>
</content>
</entry>
</feed>
