CCCPaste

0f98a034489b9

(base) bordeaux80 :: Persos/Rust/skycrapers ‹master*› » cargo run
warning: skycrapers v0.1.0 (/home/laurent/Documents/Programmation/Projets/Persos/Rust/skycrapers) ignoring invalid dependency `rfs` which is missing a lib target
   Compiling skycrapers v0.1.0 (/home/laurent/Documents/Programmation/Projets/Persos/Rust/skycrapers)
error[E0277]: the trait bound `Element<'_, _, _, _>: From` is not satisfied
   --> src/main.rs:145:20
    |
145 |             button(t!("ui.toolbar.new_game").to_string()).on_press(Mess...
    |             ------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
    |             |
    |             required by a bound introduced by this call
    |
    = help: the trait `From` is not implemented for `iced_core::element::Element<'_, _, _, _>`
    = help: the following other types implement trait `From`:
              `iced_core::element::Element<'_, Link, Theme, Renderer>` implements `From>`
              `iced_core::element::Element<'_, Message, Theme, Renderer>` implements `From<&str>`
              `iced_core::element::Element<'_, Message, Theme, Renderer>` implements `From>`
              `iced_core::element::Element<'_, Message, Theme, Renderer>` implements `From>`
              `iced_core::element::Element<'_, Message, Theme, Renderer>` implements `From>`
              `iced_core::element::Element<'_, Message, Theme, Renderer>` implements `From>`
              `iced_core::element::Element<'_, Message, Theme, Renderer>` implements `From>`
              `iced_core::element::Element<'_, Message, Theme, Renderer>` implements `From>`
            and 21 others
    = note: required for `String` to implement `Into>`
note: required by a bound in `button`
   --> /home/laurent/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/iced_widget-0.13.4/src/helpers.rs:835:19
    |
834 | pub fn button<'a, Message, Theme, Renderer>(
    |        ------ required by a bound in this function
835 |     content: impl Into>,
    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `button`
    = note: the full name for the type has been written to '/home/laurent/Documents/Programmation/Projets/Persos/Rust/skycrapers/target/debug/deps/skycrapers-1975347835c32067.long-type-12169297398742323190.txt'
    = note: consider using `--verbose` to print the full type name to the console
help: consider removing this method call, as the receiver has type `Cow<'_, str>` and `Cow<'_, str>: From` trivially holds
    |
 14 - i18n!("locales", fallback = "en");
 15 - use rust_i18n::t;
 16 - 
 17 - const CELLS_SIZE: f32 = 40.0;
 18 - 
 19 - fn main() -> iced::Result {
 20 -     iced::run("Skycrapers", MyApp::update, MyApp::view)
 21 - }
 22 - 
 23 - #[derive(Debug, Clone)]
 24 - enum Message {
 25 -     Update(u8, u8, String),
 26 -     NewGame,
 27 -     Check,
 28 - }
 29 - 
 30 - struct MyApp {
 31 -     size: u8,
 32 -     values: Vec>,
 33 -     answer: Vec>,
 34 -     /*
 35 -        index 0 is the top line
 36 -        index 1 is the bottom line
 37 -        index 2 is the left line
 38 -        index 3 is the right line
 39 -     */
 40 -     clues: Vec>,
 41 -     errors: Vec<(u8, u8)>,
 42 - }
 43 - 
 44 - impl MyApp {
 45 -     fn build_clue_component(&'_ self, clue: u8) -> Text<'_> {
 46 -         text(format!(
 47 -             "{}",
 48 -             if clue != 0 {
 49 -                 clue.to_string()
 50 -             } else {
 51 -                 String::new()
 52 -             }
 53 -         ))
 54 -         .width(CELLS_SIZE)
 55 -         .size(CELLS_SIZE)
 56 -         .align_x(Horizontal::Center)
 57 -     }
 58 - 
 59 -     fn build_empty_clue_component(&'_ self) -> Text<'_> {
 60 -         text("")
 61 -             .width(CELLS_SIZE)
 62 -             .size(CELLS_SIZE)
 63 -             .align_x(Horizontal::Center)
 64 -     }
 65 - 
 66 -     fn clear_cells(&'_ mut self) {
 67 -         let mut dyn_array = Vec::new();
 68 -         for _row in 0..self.size {
 69 -             let mut col_array = Vec::new();
 70 -             for _col in 0..self.size {
 71 -                 col_array.push("".to_string());
 72 -             }
 73 -             dyn_array.push(col_array);
 74 -         }
 75 -         self.values = dyn_array;
 76 -     }
 77 - 
 78 -     fn build_grid_comp(&'_ self) -> Column<'_, Message> {
 79 -         let mut col_comp = Column::new();
 80 - 
 81 -         let mut top_clues = Row::new();
 82 -         top_clues = top_clues.push(self.build_empty_clue_component());
 83 -         for col_index in 0..self.size {
 84 -             let clue_comp = self.build_clue_component(self.clues[0][col_index as usize]);
 85 -             top_clues = top_clues.push(clue_comp);
 86 -         }
 87 -         col_comp = col_comp.push(top_clues);
 88 - 
 89 -         for row_index in 0..self.size {
 90 -             let mut row_comp = Row::new();
 91 - 
 92 -             let left_clue_comp = self.build_clue_component(self.clues[2][row_index as usize]);
 93 -             let right_clue_comp = self.build_clue_component(self.clues[3][row_index as usize]);
 94 - 
 95 -             row_comp = row_comp.push(left_clue_comp);
 96 - 
 97 -             for col_index in 0..self.size {
 98 -                 let is_error = self.errors.contains(&(row_index, col_index));
 99 -                 let cell = text_input(
100 -                     "",
101 -                     self.values[row_index as usize][col_index as usize].as_str(),
102 -                 )
103 -                 .width(CELLS_SIZE)
104 -                 .size(CELLS_SIZE * 0.8)
105 -                 .align_x(Horizontal::Center)
106 -                 .style(move |_, _| text_input::Style {
107 -                     background: iced::Background::Color(Color::TRANSPARENT),
108 - 
109 -                     border: Border {
110 -                         color: Color::BLACK,
111 -                         width: 1.0,
112 -                         radius: Radius::new(0),
113 -                     },
114 -                     icon: Color::TRANSPARENT,
115 -                     placeholder: Color::TRANSPARENT,
116 -                     selection: Color::TRANSPARENT,
117 -                     value: if is_error {
118 -                         Color::from_rgb(1.0, 0.0, 0.0)
119 -                     } else {
120 -                         Color::BLACK
121 -                     },
122 -                 })
123 -                 .on_input(move |value| Message::Update(row_index, col_index, value));
124 -                 row_comp = row_comp.push(cell);
125 -             }
126 - 
127 -             row_comp = row_comp.push(right_clue_comp);
128 - 
129 -             col_comp = col_comp.push(row_comp);
130 -         }
131 - 
132 -         let mut bottom_clues = Row::new();
133 -         bottom_clues = bottom_clues.push(self.build_empty_clue_component());
134 -         for col_index in 0..self.size {
135 -             let clue_comp = self.build_clue_component(self.clues[1][col_index as usize]);
136 -             bottom_clues = bottom_clues.push(clue_comp);
137 -         }
138 -         col_comp = col_comp.push(bottom_clues);
139 - 
140 -         col_comp
141 -     }
142 - 
143 -     fn build_toolbar_comp(&self) -> Row<'_, Message> {
144 -         let new_game_button =
145 -             button(t!("ui.toolbar.new_game").to_string()).on_press(Message::NewGame);
 14 + i18n!("locales", fallback = "en")).on_press(Message::NewGame);
    |

error[E0277]: the trait bound `Element<'_, _, _, _>: From` is not satisfied
   --> src/main.rs:146:35
    |
146 | ...k_button = button(t!("ui.toolbar.check").to_string()).on_press(Messa...
    |               ------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
    |               |
    |               required by a bound introduced by this call
    |
    = help: the trait `From` is not implemented for `iced_core::element::Element<'_, _, _, _>`
    = help: the following other types implement trait `From`:
              `iced_core::element::Element<'_, Link, Theme, Renderer>` implements `From>`
              `iced_core::element::Element<'_, Message, Theme, Renderer>` implements `From<&str>`
              `iced_core::element::Element<'_, Message, Theme, Renderer>` implements `From>`
              `iced_core::element::Element<'_, Message, Theme, Renderer>` implements `From>`
              `iced_core::element::Element<'_, Message, Theme, Renderer>` implements `From>`
              `iced_core::element::Element<'_, Message, Theme, Renderer>` implements `From>`
              `iced_core::element::Element<'_, Message, Theme, Renderer>` implements `From>`
              `iced_core::element::Element<'_, Message, Theme, Renderer>` implements `From>`
            and 21 others
    = note: required for `String` to implement `Into>`
note: required by a bound in `button`
   --> /home/laurent/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/iced_widget-0.13.4/src/helpers.rs:835:19
    |
834 | pub fn button<'a, Message, Theme, Renderer>(
    |        ------ required by a bound in this function
835 |     content: impl Into>,
    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `button`
    = note: the full name for the type has been written to '/home/laurent/Documents/Programmation/Projets/Persos/Rust/skycrapers/target/debug/deps/skycrapers-1975347835c32067.long-type-9008159889769157918.txt'
    = note: consider using `--verbose` to print the full type name to the console
help: consider removing this method call, as the receiver has type `Cow<'_, str>` and `Cow<'_, str>: From` trivially holds
    |
 14 - i18n!("locales", fallback = "en");
 15 - use rust_i18n::t;
 16 - 
 17 - const CELLS_SIZE: f32 = 40.0;
 18 - 
 19 - fn main() -> iced::Result {
 20 -     iced::run("Skycrapers", MyApp::update, MyApp::view)
 21 - }
 22 - 
 23 - #[derive(Debug, Clone)]
 24 - enum Message {
 25 -     Update(u8, u8, String),
 26 -     NewGame,
 27 -     Check,
 28 - }
 29 - 
 30 - struct MyApp {
 31 -     size: u8,
 32 -     values: Vec>,
 33 -     answer: Vec>,
 34 -     /*
 35 -        index 0 is the top line
 36 -        index 1 is the bottom line
 37 -        index 2 is the left line
 38 -        index 3 is the right line
 39 -     */
 40 -     clues: Vec>,
 41 -     errors: Vec<(u8, u8)>,
 42 - }
 43 - 
 44 - impl MyApp {
 45 -     fn build_clue_component(&'_ self, clue: u8) -> Text<'_> {
 46 -         text(format!(
 47 -             "{}",
 48 -             if clue != 0 {
 49 -                 clue.to_string()
 50 -             } else {
 51 -                 String::new()
 52 -             }
 53 -         ))
 54 -         .width(CELLS_SIZE)
 55 -         .size(CELLS_SIZE)
 56 -         .align_x(Horizontal::Center)
 57 -     }
 58 - 
 59 -     fn build_empty_clue_component(&'_ self) -> Text<'_> {
 60 -         text("")
 61 -             .width(CELLS_SIZE)
 62 -             .size(CELLS_SIZE)
 63 -             .align_x(Horizontal::Center)
 64 -     }
 65 - 
 66 -     fn clear_cells(&'_ mut self) {
 67 -         let mut dyn_array = Vec::new();
 68 -         for _row in 0..self.size {
 69 -             let mut col_array = Vec::new();
 70 -             for _col in 0..self.size {
 71 -                 col_array.push("".to_string());
 72 -             }
 73 -             dyn_array.push(col_array);
 74 -         }
 75 -         self.values = dyn_array;
 76 -     }
 77 - 
 78 -     fn build_grid_comp(&'_ self) -> Column<'_, Message> {
 79 -         let mut col_comp = Column::new();
 80 - 
 81 -         let mut top_clues = Row::new();
 82 -         top_clues = top_clues.push(self.build_empty_clue_component());
 83 -         for col_index in 0..self.size {
 84 -             let clue_comp = self.build_clue_component(self.clues[0][col_index as usize]);
 85 -             top_clues = top_clues.push(clue_comp);
 86 -         }
 87 -         col_comp = col_comp.push(top_clues);
 88 - 
 89 -         for row_index in 0..self.size {
 90 -             let mut row_comp = Row::new();
 91 - 
 92 -             let left_clue_comp = self.build_clue_component(self.clues[2][row_index as usize]);
 93 -             let right_clue_comp = self.build_clue_component(self.clues[3][row_index as usize]);
 94 - 
 95 -             row_comp = row_comp.push(left_clue_comp);
 96 - 
 97 -             for col_index in 0..self.size {
 98 -                 let is_error = self.errors.contains(&(row_index, col_index));
 99 -                 let cell = text_input(
100 -                     "",
101 -                     self.values[row_index as usize][col_index as usize].as_str(),
102 -                 )
103 -                 .width(CELLS_SIZE)
104 -                 .size(CELLS_SIZE * 0.8)
105 -                 .align_x(Horizontal::Center)
106 -                 .style(move |_, _| text_input::Style {
107 -                     background: iced::Background::Color(Color::TRANSPARENT),
108 - 
109 -                     border: Border {
110 -                         color: Color::BLACK,
111 -                         width: 1.0,
112 -                         radius: Radius::new(0),
113 -                     },
114 -                     icon: Color::TRANSPARENT,
115 -                     placeholder: Color::TRANSPARENT,
116 -                     selection: Color::TRANSPARENT,
117 -                     value: if is_error {
118 -                         Color::from_rgb(1.0, 0.0, 0.0)
119 -                     } else {
120 -                         Color::BLACK
121 -                     },
122 -                 })
123 -                 .on_input(move |value| Message::Update(row_index, col_index, value));
124 -                 row_comp = row_comp.push(cell);
125 -             }
126 - 
127 -             row_comp = row_comp.push(right_clue_comp);
128 - 
129 -             col_comp = col_comp.push(row_comp);
130 -         }
131 - 
132 -         let mut bottom_clues = Row::new();
133 -         bottom_clues = bottom_clues.push(self.build_empty_clue_component());
134 -         for col_index in 0..self.size {
135 -             let clue_comp = self.build_clue_component(self.clues[1][col_index as usize]);
136 -             bottom_clues = bottom_clues.push(clue_comp);
137 -         }
138 -         col_comp = col_comp.push(bottom_clues);
139 - 
140 -         col_comp
141 -     }
142 - 
143 -     fn build_toolbar_comp(&self) -> Row<'_, Message> {
144 -         let new_game_button =
145 -             button(t!("ui.toolbar.new_game").to_string()).on_press(Message::NewGame);
146 -         let check_button = button(t!("ui.toolbar.check").to_string()).on_press(Message::Check);
 14 + i18n!("locales", fallback = "en")).on_press(Message::Check);
    |