Skip to content

Chaining struct methods #5

@Relrin

Description

@Relrin

Hello,

I've faced with an issue around using your library, when necessary to chain a couple of struct methods together, so that the code looks much better and easier to maintain. The issue raises in code that looks like this:

Box::new(pipe!(
    rabbitmq_client_local.get_channel()
        => self.declare_response_queue
        => self.link_response_queue
        => self.publish_message
        => self.consume_response
        => self.send_response
        => self.unbind_response_queue
        => self.delete_response_queue
        => self.post_process_result
))

Here we see pretty simple code, that contains a RabbitMQ channel and pass it to the nested calls so that each method will produce a new future, based on the previous one.

The piece of code, that was mentioned above, generates the following errors during the compiling stage:

error: no rules expected the token `.`                                                                                                                       
   --> src/engine/engine.rs:165:25                                                                                                                           
    |                                                                                                                                                        
165 |                 => self.declare_response_queue                                                                                                     
    |                        ^                                                                                                                              
                                                                                                                                                             
error: no rules expected the token `.`                                                                                                                       
   --> src/engine/engine.rs:166:25                                                                                                                           
    |                                                                                                                                                        
166 |                 => self.link_response_queue                                                                                                          
    |                        ^                                                                                                                              
                                                                                                                                                             
error: no rules expected the token `.`                                                                                                                       
   --> src/engine/engine.rs:167:25                                                                                                                           
    |                                                                                                                                                        
167 |                 => self.publish_message                                                                                                              
    |                        ^                                                                                                                              
                                                                                                                                                             
error: no rules expected the token `.`                                                                                                                       
   --> src/engine/engine.rs:168:25                                                                                                                           
    |                                                                                                                                                        
168 |                 => self.consume_response                                                                                                            
    |                        ^                                                                                                                              
                                                                                                                                                             
error: no rules expected the token `.`                                                                                                                       
   --> src/engine/engine.rs:169:25                                                                                                                           
    |                                                                                                                                                        
169 |                 => self.send_response                                                                                                               
    |                        ^                                                                                                                              
                                                                                                                                                             
error: no rules expected the token `.`                                                                                                                       
   --> src/engine/engine.rs:170:25                                                                                                                           
    |                                                                                                                                                        
170 |                 => self.unbind_response_queue                                                                                                        
    |                        ^                                                                                                                              
                                                                                                                                                             
error: no rules expected the token `.`                                                                                                                       
   --> src/engine/engine.rs:171:25                                                                                                                           
    |                                                                                                                                                        
171 |                 => self.delete_response_queue                                                                                                    
    |                        ^                                                                                                                              
                                                                                                                                                             
error: no rules expected the token `.`                                                                                                                       
   --> src/engine/engine.rs:172:25                                                                                                                           
    |                                                                                                                                                        
172 |                 => self.post_process_result                                                                                                        
    |                        ^                                                                                                                              
                                                                                                                                                             
error: aborting due to 8 previous errors  

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions