Ceras icon indicating copy to clipboard operation
Ceras copied to clipboard

Allow serialization of an invocation list with more than one target?

Open asusralis opened this issue 6 years ago • 5 comments

Hello! I was curious on why Ceras can currently only serialize delegates with an invocation length of one. Would it be difficult or impossible to allow multiple?

Also, it would be great to put the name of the delegate (like you do in ThrowStatic and ThrowInstance) so you know what delegate it is!

asusralis avatar Jul 25 '19 09:07 asusralis

It would be very easy to add. The only reason why it isn't already so is because I didn't need it myself.

Do you need it? If you do, let me know and I'll add it. Shouldn't take long :)

As for the name: yes, sure, will do!

rikimaru0345 avatar Jul 25 '19 10:07 rikimaru0345

That would be awesome! If I understand correctly, this would allow events with multiple subscribers to be serialized?

asusralis avatar Jul 25 '19 10:07 asusralis

Yes, indeed. Events with multiple subscribers (really just lots of syntax sugar for MulticastDelegate) would then round-trip through the serialization as well.

This will be (another) big breaking change. Fortunately I'm currently already rewriting many parts of Ceras for version 5 (see #53 ). So since I'm already trying to merge in as many breaking changes into v5 as possible, adding this will be not a problem.

Once it's done, you might have to switch to the (for now still experimental) v5 branch though because it might take a little longer until all the changes in v5 are done.

Since it seems like something that would require relatively little effort, I'm looking into adding this feature right now. So if everything goes well I might even commit it today (in the next 1-3 hours or so).

rikimaru0345 avatar Jul 25 '19 10:07 rikimaru0345

That's so cool! I'm looking forward to it, thanks!

asusralis avatar Jul 25 '19 10:07 asusralis

https://github.com/rikimaru0345/Ceras/commit/c032e1ae20565b64b1922369c511b6b00d466ac8 has all the needed changes. But there are some other things still preventing the branch from being usable.

I'll take a look at those later to see if I can make a semi-usable version for testing or if I need to fully complete the work on some other parts of #53 first.

rikimaru0345 avatar Jul 25 '19 13:07 rikimaru0345