2017-06-28 2 views
0

Ich befolge die Diesel-Beispiele, und mein Projekt sieht genau like this. Ich möchte es so ändern, dass anstelle cargo run --bin publish_post 1cargo run ausgeführt wird und eine Schleife angezeigt wird, die Sie auffordert, welche Aktion ausgeführt werden soll.Diesel-Methoden in andere Verzeichnisse verschieben

Ich habe alles aus bin/ und in das Verzeichnis controllers/ verschoben. Ich möchte dies als use controllers::post in main.rs verweisen, so habe ich Zugang zu post::delete() usw.

Nachdem ich die Dateien aus bin/ bewegen, alle Importe brechen. Ebenso kann ich es nicht von lib.rs beziehen.

Warum funktioniert keiner meiner Importe, wenn die Dateien verschoben werden? Wie kann ich aus diesen Dateien auf die Methoden zugreifen?

Ich möchte eine Struktur wie folgt aus:

├── controllers 
│   └── posts.rs 
├── lib.rs 
├── main.rs 
├── models.rs 
├── schema.rs 

Und innerhalb main.rs, ich möchte in der Lage sein, etwas zu tun wie: einen Ordner

use controllers::posts; 

pub fn main() { 
    // pseudocode 
    loop { 
     println!("what action would you like to perform?"); 
     let ans = capture_input(); 

     if ans == "insert" { 
      posts::insert(); 
     } else if ans == "delete" { 
      posts::delete(); 
     } 
    } 
} 

Antwort

2

machen nicht automatisch eine Rust Submodul machen . Sie müssen zwei Dinge tun:

  1. das Modul erklären ausdrücklich in der Kiste root (lib.rs oder main.rs):

    mod controllers; 
    
  2. controllers/mod.rs Datei erstellen und Submodul darin erklären:

    mod posts; 
    
+0

Das ist genau das. Vielen Dank! –

Verwandte Themen