Perfect!


On Mon, Sep 29, 2014 at 9:50 PM, Clark Gaebel <cg.wowus...@gmail.com> wrote:

> These are the semantics of a boxed value.
>
>
>
> On Mon, Sep 29, 2014 at 9:47 PM, Wink Saville <w...@saville.com> wrote:
>
>>
>>
>> On Mon, Sep 29, 2014 at 1:10 PM, Paul Colomiets <p...@colomiets.name>
>> wrote:
>>
>>> Hi,
>>>
>>> On Mon, Sep 29, 2014 at 11:01 PM, Wink Saville <w...@saville.com> wrote:
>>> > Nanomsg looks interesting and I'll take a closer look. But I'm
>>> interested in
>>> > a pure rust implementation of async messaging because I'd like to
>>> create an
>>> > embedded OS using rust and not use C if possible.
>>> >
>>>
>>> I think even if there will be nanomsg implementation in pure rust,
>>> that would probably require rust stdlib, which is usually not used for
>>> embedded purposes, right?
>>>
>>> > I been thinking about the problem and one of the questions I have is
>>> how to
>>> > transfer ownership of a pointer from one entity to another. Not borrow
>>> but
>>> > actually transfer ownership. So if I "allocated" a Message in one
>>> entity
>>> > then send it to another I want the receiver to "free" the Message.
>>> >
>>>
>>>
>>> > Does the rust ownership model allow ownership to be transferred?
>>> >
>>>
>>> Sure, you can just send Vec of bytes or any other rust object though
>>> the channel (just like almost any rust object). And semantics is just
>>> like you described. You can also use Arc<Vec<u8>> that allows to use
>>> that message in several places simultaneously (e.g. if you want
>>> publish-subscribe)
>>>
>>
>> I'd rather not use a channel as channels appear to only work between
>> tasks. I'd like to have the transfer semantics work between any two
>> entities.
>>
>> For instance, I'd like to have a queue between two entities and transfer a
>> reference via the queue from A to B. .i.e. allocate a Message in A then
>> place the Message on a queue. A would no longer have a reference to the
>> Message and the only reference would be the one in the queue. Then when B
>> retrieved the message from the queue B would have the only reference.
>> Finally, when B went out of scope, the message would be freed.
>>
>> Is that possible as the language is currently defined, if so could I be
>> pointed
>> to an example or documentation?
>>
>>
>>  Paul
>>>
>>
>>
>
_______________________________________________
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to