Initial commit: Todo CLI app in rust
This commit is contained in:
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
/target
|
||||
7
Cargo.lock
generated
Normal file
7
Cargo.lock
generated
Normal file
@@ -0,0 +1,7 @@
|
||||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
version = 4
|
||||
|
||||
[[package]]
|
||||
name = "todo_cli"
|
||||
version = "0.1.0"
|
||||
6
Cargo.toml
Normal file
6
Cargo.toml
Normal file
@@ -0,0 +1,6 @@
|
||||
[package]
|
||||
name = "todo_cli"
|
||||
version = "0.1.0"
|
||||
edition = "2024"
|
||||
|
||||
[dependencies]
|
||||
102
src/main.rs
Normal file
102
src/main.rs
Normal file
@@ -0,0 +1,102 @@
|
||||
use std::vec;
|
||||
use std::io;
|
||||
struct Task{
|
||||
name: String,
|
||||
priority: usize,
|
||||
description: String,
|
||||
done: bool,
|
||||
}
|
||||
impl Task{
|
||||
fn new(name: String, priority: usize, description: String)-> Task{
|
||||
Task{name,priority,description, done: false}
|
||||
}
|
||||
fn display(&self){
|
||||
println!("Tâche: {}.
|
||||
Priorité: {}
|
||||
Description: {}", self.name, self.priority,self.description)
|
||||
}
|
||||
fn task_done(&mut self){
|
||||
if !self.done{
|
||||
println!("La tâche {} à été effectué, bravo !", self.name);
|
||||
self.done = true;
|
||||
}
|
||||
else{
|
||||
println!("La tâche {} à déjà été effectué.", self.name);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
struct TodoList{
|
||||
list_tasks: Vec<Task>,
|
||||
}
|
||||
impl TodoList{
|
||||
fn new()->TodoList{
|
||||
TodoList { list_tasks: Vec::new() }
|
||||
}
|
||||
fn create_task(&mut self,name: String, priority: usize, description: String){
|
||||
let task = Task::new(name, priority, description);
|
||||
self.list_tasks.push(task);
|
||||
}
|
||||
fn add(&mut self, task: Task){
|
||||
self.list_tasks.push(task);
|
||||
}
|
||||
fn delete(&mut self, number: usize){
|
||||
self.list_tasks.remove(number);
|
||||
}
|
||||
fn list(&self){
|
||||
for (i,task) in self.list_tasks.iter().enumerate(){
|
||||
println!("{}: {} - Priorité: {}", i, task.name, task.priority);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
fn main() {
|
||||
println!("Bienvenue dans le menu de la ToDoList APP !");
|
||||
let mut s1 = TodoList::new();
|
||||
|
||||
loop{
|
||||
println!("\n--- ToDoList APP ---");
|
||||
println!("Voici la liste des tâches");
|
||||
s1.list();
|
||||
println!("Vous pouvez; \n Pressez 1 pour créer une tâche.\n Pressez 2 pour supprimer une tâche \n Pressez 3 pour revoir la liste de tâche.\n Et écrire quit pour quitter l'application");
|
||||
let mut input = String::new();
|
||||
io::stdin().read_line(&mut input).expect("Failed to read");
|
||||
let input = input.trim();
|
||||
if(input=="1") {
|
||||
let mut input2 = String::new();
|
||||
println!("Créons une tâche, veuillez entrer: Le nom de la tâche");
|
||||
io::stdin().read_line(&mut input2).expect("Failed to read");
|
||||
let input2 = input2.trim();
|
||||
let TacheName = input2;
|
||||
println!("Créons une tâche, veuillez entrer: la priorité de cette dernière (chiffre de 1 à 5)");
|
||||
let mut input3 = String::new();
|
||||
io::stdin().read_line(&mut input3).expect("Failed to read");
|
||||
let input3 = input3.trim();
|
||||
let priority = input3;
|
||||
println!("Créons une tâche, veuillez entrer: Une petite description");
|
||||
let mut input4 = String::new();
|
||||
io::stdin().read_line(&mut input4).expect("Failed to read");
|
||||
let input4 = input4.trim();
|
||||
let description = input4;
|
||||
s1.create_task(TacheName.to_string(), priority.trim().parse().expect("Not a number!"), description.to_string());
|
||||
println!("La tâche à bien été crée !");
|
||||
s1.list();
|
||||
}
|
||||
if(input=="2"){
|
||||
s1.list();
|
||||
println!("Veuillez choisir une tâche à supprimer");
|
||||
let mut input = String::new();
|
||||
io::stdin().read_line(&mut input).expect("Failed to read");
|
||||
let input = input.trim();
|
||||
s1.delete(input.trim().parse().expect("Not a number !"));
|
||||
}
|
||||
if(input =="3"){
|
||||
s1.list();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user