On Thu, Jan 24, 2013 at 11:02 PM, Peter Ronnquist
<[email protected]> wrote:
>
> On 1/24/13 10:51 AM, Peter Ronnquist wrote:
> >
> > Hi,
> >
> > I am trying to create a vector of pointers into another vector without
> > much luck. I would be happy if someone could tell me if this a good way
> > to use rust or if there is a better way to achieve a similar data
> > structure or if I am using the wrong language :-)
> >
> > I have a vector of physical objects:
> >
> >
> > obj_vec = [ mut @obj1, @obj2, @obj3, ...,  @objn ]
> >
> > I will iterate through those objects and see which ones are close to
> > each other and I want to store a pointer/reference to those objects in a
> > separate vector:
> >
> >
> > obj_close_vec = [ &obj2, &obj3 ]
> >
> > The objects in obj_close_vec will be investigated further and might be
> > updated.
>
> Does something like this work?
>
>      let mut obj_vec = [ @mut obj1, @mut obj2, ... @mut objn ];
>      let mut obj_close_vec: ~[@mut ObjType] = ~[];
>      for obj_vec.each |&obj| {
>          if obj.is_interesting() {
>              obj_close_vec.push(obj);
>          }
>      }
>      for obj_close_vec.each |&obj| {
>          if i_want_to_mutate(obj) {
>              *obj = munge(obj);
>          }
>      }
>
> Patrick
>
> ----------------------------------
>
> I tried this:
>
>
> struct Vec2 {
>     x: float,
>     y: float
> }
>
> fn main () {
>
>     let mut obj_vec = [@mut Vec2 {x: 0.3, y: 0.4}, @mut Vec2 {x: 0.1, y: 0.2} 
> ];
>
>
>     let mut obj_close_vec: ~[@mut Vec2] = ~[];
>
>     for obj_vec.each  |&obj| {
>         obj_close_vec.push(obj);
>     }
>
> }
>
> and got:
>
>
> rustc test_vec.rs
>
>
> test_vec.rs:14:24: 14:27 error: obsolete syntax: by-mutable-reference mode
> test_vec.rs:14     for obj_vec.each  |&obj| {
>                                        ^~~
>
> note: Declare an argument of type &mut T instead
>
> error: aborting due to previous error
>
>
> hmm, don't know what that means but I will try to get past that error.
> Thanks for your quick reply!

-------------------------------------------

My problem was that I used rust v0.4 on this computer, after updating
to v0.5 then it compiles!

Thanks a lot.
_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to