I'm trying to compile a rust app and I'm getting a bunch of errors, tell me step by step how to fix all of them:
error[E0599]: no variant or associated item named `Units` found for enum `iced::Length` in the current scope
  --> src/ui/components/progress.rs:50:56
   |
50 | ...ength::Units(height as u16));
   |           ^^^^^ variant or associated item not found in `Length`

error[E0599]: no variant or associated item named `Units` found for enum `iced::Length` in the current scope
  --> src/ui/components/text_input.rs:55:41
   |
55 |             input = input.width(Length::Units(width as u16));
   |                                         ^^^^^ variant or associated item not found in `Length`

error[E0599]: no method named `height` found for struct `iced::widget::TextInput` in the current scope
  --> src/ui/components/text_input.rs:59:27
   |
59 |             input = input.height(Length::Units(height as u16));
   |                           ^^^^^^
   |
   = help: items from traits can only be used if the trait is in scope
help: trait `Widget` which provides `height` is implemented but not in scope; perhaps you want to import it
   |
1  + use iced_core::widget::Widget;
   |
help: there is a method `line_height` with a similar name
   |
59 |             input = input.line_height(Length::Units(height as u16));
   |                           ~~~~~~~~~~~

error[E0599]: no variant or associated item named `Units` found for enum `iced::Length` in the current scope
  --> src/ui/components/text_input.rs:59:42
   |
59 |             input = input.height(Length::Units(height as u16));
   |                                          ^^^^^ variant or associated item not found in `Length`

error[E0308]: mismatched types
  --> src/ui/theme/mod.rs:70:28
   |
70 |             border_radius: 2.0,
   |                            ^^^ expected `BorderRadius`, found floating-point number
   |
help: call `Into::into` on this expression to convert `{float}` into `BorderRadius`
   |
70 |             border_radius: 2.0.into(),
   |                               +++++++

error[E0308]: mismatched types
   --> src/ui/theme/mod.rs:141:32
    |
141 |                 border_radius: 2.0,
    |                                ^^^ expected `BorderRadius`, found floating-point number
    |
help: call `Into::into` on this expression to convert `{float}` into `BorderRadius`
    |
141 |                 border_radius: 2.0.into(),
    |                                   +++++++

error[E0308]: mismatched types
   --> src/ui/theme/mod.rs:151:32
    |
151 |                 border_radius: 2.0,
    |                                ^^^ expected `BorderRadius`, found floating-point number
    |
help: call `Into::into` on this expression to convert `{float}` into `BorderRadius`
    |
151 |                 border_radius: 2.0.into(),
    |                                   +++++++

error[E0308]: mismatched types
   --> src/ui/theme/mod.rs:161:32
    |
161 |                 border_radius: 2.0,
    |                                ^^^ expected `BorderRadius`, found floating-point number
    |
help: call `Into::into` on this expression to convert `{float}` into `BorderRadius`
    |
161 |                 border_radius: 2.0.into(),
    |                                   +++++++

error[E0308]: mismatched types
   --> src/ui/theme/mod.rs:176:28
    |
176 |             border_radius: 2.0,
    |                            ^^^ expected `BorderRadius`, found floating-point number
    |
help: call `Into::into` on this expression to convert `{float}` into `BorderRadius`
    |
176 |             border_radius: 2.0.into(),
    |                               +++++++

error[E0308]: mismatched types
   --> src/ui/theme/mod.rs:186:28
    |
186 |             border_radius: 2.0,
    |                            ^^^ expected `BorderRadius`, found floating-point number
    |
help: call `Into::into` on this expression to convert `{float}` into `BorderRadius`
    |
186 |             border_radius: 2.0.into(),
    |                               +++++++

error[E0308]: mismatched types
   --> src/ui/theme/mod.rs:231:28
    |
231 |             border_radius: 2.0,
    |                            ^^^ expected `BorderRadius`, found floating-point number
    |
help: call `Into::into` on this expression to convert `{float}` into `BorderRadius`
    |
231 |             border_radius: 2.0.into(),
    |                               +++++++

error[E0599]: no associated item named `Heading` found for struct `ui::theme::Theme` in the current scope
  --> src/ui/views/dashboard.rs:31:27
   |
31 |             .style(Theme::Heading);
   |                           ^^^^^^^ associated item not found in `Theme`
   |
  ::: src/ui/theme/mod.rs:31:1
   |
31 | pub struct Theme {
   | ---------------- associated item `Heading` not found for this struct

error[E0061]: this function takes 2 arguments but 1 argument was supplied
  --> src/ui/views/dashboard.rs:37:23
   |
37 |                 .push(ProgressIndicator::new(self.usage_progress)
   |                       ^^^^^^^^^^^^^^^^^^^^^^--------------------- argument #2 of type `f32` is missing
   |
note: associated function defined here
  --> src/ui/components/progress.rs:15:12
   |
15 |     pub fn new(value: f32, total: f32) -> Self {
   |            ^^^ ----------  ----------
help: provide the argument
   |
37 |                 .push(ProgressIndicator::new(self.usage_progress, /* f32 */)
   |                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

error[E0308]: mismatched types
  --> src/ui/views/dashboard.rs:38:28
   |
38 |                     .width(Length::Fill))
   |                      ----- ^^^^^^^^^^^^ expected `f32`, found `Length`
   |                      |
   |                      arguments to this method are incorrect
   |
note: method defined here
  --> src/ui/components/progress.rs:24:12
   |
24 |     pub fn width(mut self, width: f32) -> Self {
   |            ^^^^^           ----------

error[E0599]: no associated item named `Primary` found for struct `ui::theme::Theme` in the current scope
  --> src/ui/views/dashboard.rs:49:43
   |
49 | ...                   .style(Theme::Primary))
   |                                     ^^^^^^^ associated item not found in `Theme`
   |
  ::: src/ui/theme/mod.rs:31:1
   |
31 | pub struct Theme {
   | ---------------- associated item `Primary` not found for this struct

error[E0599]: no associated item named `Secondary` found for struct `ui::theme::Theme` in the current scope
  --> src/ui/views/dashboard.rs:51:43
   |
51 | ...                   .style(Theme::Secondary))
   |                                     ^^^^^^^^^ associated item not found in `Theme`
   |
  ::: src/ui/theme/mod.rs:31:1
   |
31 | pub struct Theme {
   | ---------------- associated item `Secondary` not found for this struct

error[E0599]: no associated item named `Heading` found for struct `ui::theme::Theme` in the current scope
  --> src/ui/views/subvolumes.rs:38:27
   |
38 |             .style(Theme::Heading);
   |                           ^^^^^^^ associated item not found in `Theme`
   |
  ::: src/ui/theme/mod.rs:31:1
   |
31 | pub struct Theme {
   | ---------------- associated item `Heading` not found for this struct

error[E0599]: no associated item named `Primary` found for struct `ui::theme::Theme` in the current scope
  --> src/ui/views/subvolumes.rs:41:27
   |
41 |             .style(Theme::Primary);
   |                           ^^^^^^^ associated item not found in `Theme`
   |
  ::: src/ui/theme/mod.rs:31:1
   |
31 | pub struct Theme {
   | ---------------- associated item `Primary` not found for this struct

error[E0277]: the trait bound `Cow<'_, str>: From<&PathBuf>` is not satisfied
  --> src/ui/views/subvolumes.rs:50:45
   |
50 | ...                   .push(Text::new(&subvol.path))
   |                             --------- ^^^^^^^^^^^^ the trait `From<&PathBuf>` is not implemented for `Cow<'_, str>`, which is required by `&PathBuf: Into<Cow<'_, str>>`
   |                             |
   |                             required by a bound introduced by this call
   |
   = help: the following other types implement trait `From<T>`:
             `Cow<'a, CStr>` implements `From<&'a CStr>`
             `Cow<'a, CStr>` implements `From<&'a CString>`
             `Cow<'a, CStr>` implements `From<CString>`
             `Cow<'a, OsStr>` implements `From<&'a OsStr>`
             `Cow<'a, OsStr>` implements `From<&'a OsString>`
             `Cow<'a, OsStr>` implements `From<OsString>`
             `Cow<'a, [T]>` implements `From<&'a Vec<T>>`
             `Cow<'a, [T]>` implements `From<&'a [T; N]>`
           and 11 others
   = note: required for `&PathBuf` to implement `Into<Cow<'_, str>>`
note: required by a bound in `iced_core::widget::text::Text::<'a, Renderer>::new`
  --> /home/kassa/.cargo/registry/src/index.crates.io-6f17d22bba15001f/iced_core-0.10.0/src/widget/text.rs:39:30
   |
39 |     pub fn new(content: impl Into<Cow<'a, str>>) -> Self {
   |                              ^^^^^^^^^^^^^^^^^^ required by this bound in `Text::<'a, Renderer>::new`

error[E0599]: no associated item named `Danger` found for struct `ui::theme::Theme` in the current scope
  --> src/ui/views/subvolumes.rs:52:47
   |
52 | ...                   .style(Theme::Danger))
   |                                     ^^^^^^ associated item not found in `Theme`
   |
  ::: src/ui/theme/mod.rs:31:1
   |
31 | pub struct Theme {
   | ---------------- associated item `Danger` not found for this struct

error[E0599]: no associated item named `Primary` found for struct `ui::theme::Theme` in the current scope
  --> src/ui/views/subvolumes.rs:77:47
   |
77 | ...                   .style(Theme::Primary))
   |                                     ^^^^^^^ associated item not found in `Theme`
   |
  ::: src/ui/theme/mod.rs:31:1
   |
31 | pub struct Theme {
   | ---------------- associated item `Primary` not found for this struct

error[E0599]: no associated item named `Secondary` found for struct `ui::theme::Theme` in the current scope
  --> src/ui/views/subvolumes.rs:79:47
   |
79 | ...                   .style(Theme::Secondary))
   |                                     ^^^^^^^^^ associated item not found in `Theme`
   |
  ::: src/ui/theme/mod.rs:31:1
   |
31 | pub struct Theme {
   | ---------------- associated item `Secondary` not found for this struct

error[E0061]: this function takes 1 argument but 2 arguments were supplied
  --> src/ui/views/subvolumes.rs:65:13
   |
65 |               Modal::new(
   |               ^^^^^^^^^^
66 |                   "Create Subvolume",
67 | /                 Column::new()
68 | |                     .spacing(10)
69 | |                     .push(TextInput::new(
70 | |                         "Enter subvolume name",
...  |
79 | |                                 .style(Theme::Secondary))
80 | |                     ),
   | |_____________________- unexpected argument #2 of type `Column<'_, _>`
   |
note: associated function defined here
  --> src/ui/components/modal.rs:18:12
   |
18 |     pub fn new(title: impl Into<String>) -> Self {
   |            ^^^ ------------------------
help: remove the extra argument
   |
66 -                 "Create Subvolume",
67 -                 Column::new()
68 -                     .spacing(10)
69 -                     .push(TextInput::new(
70 -                         "Enter subvolume name",
71 -                         &self.new_subvol_name,
72 -                     ))
73 -                     .push(
74 -                         Row::new()
75 -                             .spacing(10)
76 -                             .push(ActionButton::new("Create")
77 -                                 .style(Theme::Primary))
78 -                             .push(ActionButton::new("Cancel")
79 -                                 .style(Theme::Secondary))
80 -                     ),
66 +                 "Create Subvolume",
   |

error[E0599]: no associated item named `Heading` found for struct `ui::theme::Theme` in the current scope
  --> src/ui/views/snapshots.rs:40:27
   |
40 |             .style(Theme::Heading);
   |                           ^^^^^^^ associated item not found in `Theme`
   |
  ::: src/ui/theme/mod.rs:31:1
   |
31 | pub struct Theme {
   | ---------------- associated item `Heading` not found for this struct

error[E0599]: no associated item named `Primary` found for struct `ui::theme::Theme` in the current scope
  --> src/ui/views/snapshots.rs:43:27
   |
43 |             .style(Theme::Primary);
   |                           ^^^^^^^ associated item not found in `Theme`
   |
  ::: src/ui/theme/mod.rs:31:1
   |
31 | pub struct Theme {
   | ---------------- associated item `Primary` not found for this struct

error[E0277]: the trait bound `Cow<'_, str>: From<&PathBuf>` is not satisfied
  --> src/ui/views/snapshots.rs:52:45
   |
52 | ...                   .push(Text::new(&snapshot.path))
   |                             --------- ^^^^^^^^^^^^^^ the trait `From<&PathBuf>` is not implemented for `Cow<'_, str>`, which is required by `&PathBuf: Into<Cow<'_, str>>`
   |                             |
   |                             required by a bound introduced by this call
   |
   = help: the following other types implement trait `From<T>`:
             `Cow<'a, CStr>` implements `From<&'a CStr>`
             `Cow<'a, CStr>` implements `From<&'a CString>`
             `Cow<'a, CStr>` implements `From<CString>`
             `Cow<'a, OsStr>` implements `From<&'a OsStr>`
             `Cow<'a, OsStr>` implements `From<&'a OsString>`
             `Cow<'a, OsStr>` implements `From<OsString>`
             `Cow<'a, [T]>` implements `From<&'a Vec<T>>`
             `Cow<'a, [T]>` implements `From<&'a [T; N]>`
           and 11 others
   = note: required for `&PathBuf` to implement `Into<Cow<'_, str>>`
note: required by a bound in `iced_core::widget::text::Text::<'a, Renderer>::new`
  --> /home/kassa/.cargo/registry/src/index.crates.io-6f17d22bba15001f/iced_core-0.10.0/src/widget/text.rs:39:30
   |
39 |     pub fn new(content: impl Into<Cow<'a, str>>) -> Self {
   |                              ^^^^^^^^^^^^^^^^^^ required by this bound in `Text::<'a, Renderer>::new`

error[E0599]: no associated item named `Danger` found for struct `ui::theme::Theme` in the current scope
  --> src/ui/views/snapshots.rs:59:47
   |
59 | ...                   .style(Theme::Danger))
   |                                     ^^^^^^ associated item not found in `Theme`
   |
  ::: src/ui/theme/mod.rs:31:1
   |
31 | pub struct Theme {
   | ---------------- associated item `Danger` not found for this struct

error[E0599]: no associated item named `Primary` found for struct `ui::theme::Theme` in the current scope
  --> src/ui/views/snapshots.rs:89:47
   |
89 | ...                   .style(Theme::Primary))
   |                                     ^^^^^^^ associated item not found in `Theme`
   |
  ::: src/ui/theme/mod.rs:31:1
   |
31 | pub struct Theme {
   | ---------------- associated item `Primary` not found for this struct

error[E0599]: no associated item named `Secondary` found for struct `ui::theme::Theme` in the current scope
  --> src/ui/views/snapshots.rs:91:47
   |
91 | ...                   .style(Theme::Secondary))
   |                                     ^^^^^^^^^ associated item not found in `Theme`
   |
  ::: src/ui/theme/mod.rs:31:1
   |
31 | pub struct Theme {
   | ---------------- associated item `Secondary` not found for this struct

error[E0061]: this function takes 1 argument but 2 arguments were supplied
  --> src/ui/views/snapshots.rs:72:13
   |
72 |               Modal::new(
   |               ^^^^^^^^^^
73 |                   "Create Snapshot",
74 | /                 Column::new()
75 | |                     .spacing(10)
76 | |                     .push(TextInput::new(
77 | |                         "Enter snapshot name",
...  |
91 | |                                 .style(Theme::Secondary))
92 | |                     ),
   | |_____________________- unexpected argument #2 of type `Column<'_, Message>`
   |
note: associated function defined here
  --> src/ui/components/modal.rs:18:12
   |
18 |     pub fn new(title: impl Into<String>) -> Self {
   |            ^^^ ------------------------
help: remove the extra argument
   |
73 -                 "Create Snapshot",
74 -                 Column::new()
75 -                     .spacing(10)
76 -                     .push(TextInput::new(
77 -                         "Enter snapshot name",
78 -                         &self.new_snapshot_name,
79 -                     ))
80 -                     .push(Checkbox::new(
81 -                         "Read-only snapshot",
82 -                         self.readonly,
83 -                         |_| Message::Error("Not implemented".into()),
84 -                     ))
85 -                     .push(
86 -                         Row::new()
87 -                             .spacing(10)
88 -                             .push(ActionButton::new("Create")
89 -                                 .style(Theme::Primary))
90 -                             .push(ActionButton::new("Cancel")
91 -                                 .style(Theme::Secondary))
92 -                     ),
73 +                 "Create Snapshot",
   |

error[E0599]: no variant or associated item named `ConfigUpdated` found for enum `Message` in the current scope
  --> src/ui/views/settings.rs:58:35
   |
58 |                     Some(Message::ConfigUpdated(self.config.clone()))
   |                                   ^^^^^^^^^^^^^ variant or associated item not found in `Message`
   |
  ::: src/ui/mod.rs:20:1
   |
20 | pub enum Message {
   | ---------------- variant or associated item `ConfigUpdated` not found for this enum

error[E0308]: mismatched types
  --> src/ui/views/settings.rs:82:81
   |
82 | ...ge::Settings(SettingsMessage::ThemeChanged(theme))
   |                 ----------------------------- ^^^^^- help: try using a conversion method: `.to_string()`
   |                 |                             |
   |                 |                             expected `String`, found `&str`
   |                 arguments to this enum variant are incorrect
   |
note: tuple variant defined here
  --> src/ui/views/settings.rs:12:5
   |
12 |     ThemeChanged(String),
   |     ^^^^^^^^^^^^

error[E0308]: mismatched types
  --> src/ui/views/settings.rs:82:51
   |
82 | ...eme| Message::Settings(SettingsMessage::ThemeChanged(theme))
   |         ----------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Box<Message>`, found `SettingsMessage`
   |         |
   |         arguments to this enum variant are incorrect
   |
   = note: expected struct `std::boxed::Box<Message>`
                found enum `SettingsMessage`
note: tuple variant defined here
  --> src/ui/mod.rs:24:5
   |
24 |     Settings(Box<views::settings::Message>),
   |     ^^^^^^^^

error[E0308]: mismatched types
  --> src/ui/views/settings.rs:97:52
   |
97 | ...ale| Message::Settings(SettingsMessage::LocaleChanged(locale))
   |         ----------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Box<Message>`, found `SettingsMessage`
   |         |
   |         arguments to this enum variant are incorrect
   |
   = note: expected struct `std::boxed::Box<Message>`
                found enum `SettingsMessage`
note: tuple variant defined here
  --> src/ui/mod.rs:24:5
   |
24 |     Settings(Box<views::settings::Message>),
   |     ^^^^^^^^

error[E0308]: mismatched types
   --> src/ui/views/settings.rs:121:51
    |
121 |                           |value| Message::Settings(SettingsMessage::Au...
    |  _________________________________-----------------_^
    | |                                 |
    | |                                 arguments to this enum variant are incorrect
122 | |                             value == i18n::get("settings.auto_refresh...
123 | |                         ))
    | |_________________________^ expected `Box<Message>`, found `SettingsMessage`
    |
    = note: expected struct `std::boxed::Box<Message>`
                 found enum `SettingsMessage`
note: tuple variant defined here
   --> src/ui/mod.rs:24:5
    |
24  |     Settings(Box<views::settings::Message>),
    |     ^^^^^^^^

error[E0308]: mismatched types
   --> src/ui/views/settings.rs:138:93
    |
138 | ...ttings(SettingsMessage::NotificationLevelChanged(level))
    |           ----------------------------------------- ^^^^^- help: try using a conversion method: `.to_string()`
    |           |                                         |
    |           |                                         expected `String`, found `&str`
    |           arguments to this enum variant are incorrect
    |
note: tuple variant defined here
   --> src/ui/views/settings.rs:15:5
    |
15  |     NotificationLevelChanged(String),
    |     ^^^^^^^^^^^^^^^^^^^^^^^^

error[E0308]: mismatched types
   --> src/ui/views/settings.rs:138:51
    |
138 | ...l| Message::Settings(SettingsMessage::NotificationLevelChanged(level))
    |       ----------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Box<Message>`, found `SettingsMessage`
    |       |
    |       arguments to this enum variant are incorrect
    |
    = note: expected struct `std::boxed::Box<Message>`
                 found enum `SettingsMessage`
note: tuple variant defined here
   --> src/ui/mod.rs:24:5
    |
24  |     Settings(Box<views::settings::Message>),
    |     ^^^^^^^^

error[E0308]: mismatched types
   --> src/ui/views/settings.rs:149:49
    |
149 | ...on_press(Message::Settings(SettingsMessage::SaveSettings))
    |             ----------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Box<Message>`, found `SettingsMessage`
    |             |
    |             arguments to this enum variant are incorrect
    |
    = note: expected struct `std::boxed::Box<Message>`
                 found enum `SettingsMessage`
note: tuple variant defined here
   --> src/ui/mod.rs:24:5
    |
24  |     Settings(Box<views::settings::Message>),
    |     ^^^^^^^^

error[E0308]: mismatched types
   --> src/ui/views/settings.rs:152:29
    |
152 | ...                   ContainerStyle::Primary
    |                       ^^^^^^^^^^^^^^^^^^^^^^^ expected `ButtonStyle`, found `ContainerStyle`

error[E0308]: mismatched types
   --> src/ui/views/settings.rs:154:29
    |
154 | ...                   ContainerStyle::Secondary
    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^ expected `ButtonStyle`, found `ContainerStyle`

error[E0308]: mismatched types
   --> src/ui/views/settings.rs:160:49
    |
160 | ..._press(Message::Settings(SettingsMessage::CancelSettings))
    |           ----------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Box<Message>`, found `SettingsMessage`
    |           |
    |           arguments to this enum variant are incorrect
    |
    = note: expected struct `std::boxed::Box<Message>`
                 found enum `SettingsMessage`
note: tuple variant defined here
   --> src/ui/mod.rs:24:5
    |
24  |     Settings(Box<views::settings::Message>),
    |     ^^^^^^^^

error[E0308]: mismatched types
   --> src/ui/views/settings.rs:161:28
    |
161 |                     .style(ContainerStyle::Secondary)
    |                      ----- ^^^^^^^^^^^^^^^^^^^^^^^^^ expected `ButtonStyle`, found `ContainerStyle`
    |                      |
    |                      arguments to this method are incorrect
    |
note: method defined here
   --> src/ui/components/button.rs:38:12
    |
38  |     pub fn style(mut self, style: ButtonStyle) -> Self {
    |            ^^^^^           ------------------

error[E0277]: the trait bound `ContainerStyle: Into<iced::theme::Container>` is not satisfied
   --> src/ui/views/settings.rs:87:16
    |
87  |         .style(ContainerStyle::Primary)
    |          ----- ^^^^^^^^^^^^^^^^^^^^^^^ the trait `for<'a> Fn(&'a iced::Theme)` is not implemented for `ContainerStyle`, which is required by `ContainerStyle: Into<_>`
    |          |
    |          required by a bound introduced by this call
    |
    = note: required for `iced::theme::Container` to implement `From<ContainerStyle>`
    = note: required for `ContainerStyle` to implement `Into<iced::theme::Container>`
note: required by a bound in `iced::widget::Container::<'a, Message, Renderer>::style`
   --> /home/kassa/.cargo/registry/src/index.crates.io-6f17d22bba15001f/iced_widget-0.1.3/src/container.rs:125:21
    |
123 |     pub fn style(
    |            ----- required by a bound in this associated function
124 |         mut self,
125 |         style: impl Into<<Renderer::Theme as StyleSheet>::Style>,
    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Container::<'a, Message, Renderer>::style`

error[E0308]: mismatched types
  --> src/ui/mod.rs:87:54
   |
87 |                 if let Err(e) = self.settings.update(*msg) {
   |                                               ------ ^^^^ expected `SettingsMessage`, found `Message`
   |                                               |
   |                                               arguments to this method are incorrect
   |
note: method defined here
  --> src/ui/views/settings.rs:33:12
   |
33 |     pub fn update(&mut self, message: SettingsMessage) -> Option<Message> {
   |            ^^^^^^            ------------------------

error[E0308]: mismatched types
  --> src/ui/mod.rs:87:24
   |
87 |                 if let Err(e) = self.settings.update(*msg) {
   |                        ^^^^^^   -------------------------- this expression has type `std::option::Option<Message>`
   |                        |
   |                        expected `Option<Message>`, found `Result<_, _>`
   |
   = note: expected enum `std::option::Option<Message>`
              found enum `std::result::Result<_, _>`

error[E0631]: type mismatch in function arguments
   --> src/ui/mod.rs:102:45
    |
21  |     Dashboard(Box<views::dashboard::Message>),
    |     --------- found signature defined here
...
102 |             .push(self.dashboard.view().map(Message::Dashboard))
    |                                         --- ^^^^^^^^^^^^^^^^^^ expected due to this
    |                                         |
    |                                         required by a bound introduced by this call
    |
    = note: expected function signature `fn(Message) -> _`
               found function signature `fn(std::boxed::Box<Message>) -> _`
note: required by a bound in `iced_aw::Element::<'a, Message, Renderer>::map`
   --> /home/kassa/.cargo/registry/src/index.crates.io-6f17d22bba15001f/iced_core-0.10.0/src/element.rs:211:17
    |
209 |     pub fn map<B>(
    |            --- required by a bound in this associated function
210 |         self,
211 |         f: impl Fn(Message) -> B + 'a,
    |                 ^^^^^^^^^^^^^^^^ required by this bound in `Element::<'a, Message, Renderer>::map`
help: consider wrapping the function in a closure
    |
102 |             .push(self.dashboard.view().map(|arg0: Message| Message::Dashboard(/* std::boxed::Box<Message> */)))
    |                                             +++++++++++++++                   ++++++++++++++++++++++++++++++++

error[E0631]: type mismatch in function arguments
   --> src/ui/mod.rs:103:46
    |
22  |     Subvolumes(Box<views::subvolumes::Message>),
    |     ---------- found signature defined here
...
103 |             .push(self.subvolumes.view().map(Message::Subvolumes))
    |                                          --- ^^^^^^^^^^^^^^^^^^^ expected due to this
    |                                          |
    |                                          required by a bound introduced by this call
    |
    = note: expected function signature `fn(Message) -> _`
               found function signature `fn(std::boxed::Box<Message>) -> _`
note: required by a bound in `iced_aw::Element::<'a, Message, Renderer>::map`
   --> /home/kassa/.cargo/registry/src/index.crates.io-6f17d22bba15001f/iced_core-0.10.0/src/element.rs:211:17
    |
209 |     pub fn map<B>(
    |            --- required by a bound in this associated function
210 |         self,
211 |         f: impl Fn(Message) -> B + 'a,
    |                 ^^^^^^^^^^^^^^^^ required by this bound in `Element::<'a, Message, Renderer>::map`
help: consider wrapping the function in a closure
    |
103 |             .push(self.subvolumes.view().map(|arg0: Message| Message::Subvolumes(/* std::boxed::Box<Message> */)))
    |                                              +++++++++++++++                    ++++++++++++++++++++++++++++++++

error[E0631]: type mismatch in function arguments
   --> src/ui/mod.rs:104:45
    |
23  |     Snapshots(Box<views::snapshots::Message>),
    |     --------- found signature defined here
...
104 |             .push(self.snapshots.view().map(Message::Snapshots))
    |                                         --- ^^^^^^^^^^^^^^^^^^ expected due to this
    |                                         |
    |                                         required by a bound introduced by this call
    |
    = note: expected function signature `fn(Message) -> _`
               found function signature `fn(std::boxed::Box<Message>) -> _`
note: required by a bound in `iced_aw::Element::<'a, Message, Renderer>::map`
   --> /home/kassa/.cargo/registry/src/index.crates.io-6f17d22bba15001f/iced_core-0.10.0/src/element.rs:211:17
    |
209 |     pub fn map<B>(
    |            --- required by a bound in this associated function
210 |         self,
211 |         f: impl Fn(Message) -> B + 'a,
    |                 ^^^^^^^^^^^^^^^^ required by this bound in `Element::<'a, Message, Renderer>::map`
help: consider wrapping the function in a closure
    |
104 |             .push(self.snapshots.view().map(|arg0: Message| Message::Snapshots(/* std::boxed::Box<Message> */)))
    |                                             +++++++++++++++                   ++++++++++++++++++++++++++++++++

error[E0631]: type mismatch in function arguments
   --> src/ui/mod.rs:105:44
    |
24  |     Settings(Box<views::settings::Message>),
    |     -------- found signature defined here
...
105 |             .push(self.settings.view().map(Message::Settings));
    |                                        --- ^^^^^^^^^^^^^^^^^ expected due to this
    |                                        |
    |                                        required by a bound introduced by this call
    |
    = note: expected function signature `fn(Message) -> _`
               found function signature `fn(std::boxed::Box<Message>) -> _`
note: required by a bound in `iced_aw::Element::<'a, Message, Renderer>::map`
   --> /home/kassa/.cargo/registry/src/index.crates.io-6f17d22bba15001f/iced_core-0.10.0/src/element.rs:211:17
    |
209 |     pub fn map<B>(
    |            --- required by a bound in this associated function
210 |         self,
211 |         f: impl Fn(Message) -> B + 'a,
    |                 ^^^^^^^^^^^^^^^^ required by this bound in `Element::<'a, Message, Renderer>::map`
help: consider wrapping the function in a closure
    |
105 |             .push(self.settings.view().map(|arg0: Message| Message::Settings(/* std::boxed::Box<Message> */)));
    |                                            +++++++++++++++                  ++++++++++++++++++++++++++++++++

error[E0277]: the trait bound `ContainerStyle: Into<iced::theme::Container>` is not satisfied
   --> src/ui/mod.rs:112:28
    |
112 |                     .style(ContainerStyle::Error)
    |                      ----- ^^^^^^^^^^^^^^^^^^^^^ the trait `for<'a> Fn(&'a iced::Theme)` is not implemented for `ContainerStyle`, which is required by `ContainerStyle: Into<_>`
    |                      |
    |                      required by a bound introduced by this call
    |
    = note: required for `iced::theme::Container` to implement `From<ContainerStyle>`
    = note: required for `ContainerStyle` to implement `Into<iced::theme::Container>`
note: required by a bound in `iced::widget::Container::<'a, Message, Renderer>::style`
   --> /home/kassa/.cargo/registry/src/index.crates.io-6f17d22bba15001f/iced_widget-0.1.3/src/container.rs:125:21
    |
123 |     pub fn style(
    |            ----- required by a bound in this associated function
124 |         mut self,
125 |         style: impl Into<<Renderer::Theme as StyleSheet>::Style>,
    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Container::<'a, Message, Renderer>::style`

error[E0609]: no field `title` on type `iced::window::Settings`
   --> src/ui/mod.rs:131:25
    |
131 |         settings.window.title = String::from("Btrfs Manager");
    |                         ^^^^^ unknown field
    |
    = note: available fields are: `size`, `position`, `min_size`, `max_size`, `visible` ... and 6 others

error[E0061]: this function takes 0 arguments but 1 argument was supplied
   --> src/ui/mod.rs:133:9
    |
133 |         BtrfsManagerApp::run(settings)
    |         ^^^^^^^^^^^^^^^^^^^^ -------- unexpected argument of type `iced::Settings<_>`
    |
note: associated function defined here
   --> src/ui/mod.rs:127:12
    |
127 |     pub fn run() -> Result<(), BtrfsError> {
    |            ^^^
help: remove the extra argument
    |
133 -         BtrfsManagerApp::run(settings)
133 +         BtrfsManagerApp::run()
    |

error[E0308]: mismatched types
   --> src/utils/privilege.rs:25:55
    |
25  |     if let Err(e) = nix::unistd::setgid(Gid::from_raw(user.gid)) {
    |                                         ------------- ^^^^^^^^ expected `u32`, found `Gid`
    |                                         |
    |                                         arguments to this function are incorrect
    |
note: associated function defined here
   --> /home/kassa/.cargo/registry/src/index.crates.io-6f17d22bba15001f/nix-0.27.1/src/unistd.rs:135:18
    |
135 |     pub const fn from_raw(gid: gid_t) -> Self {
    |                  ^^^^^^^^
help: call `Into::into` on this expression to convert `Gid` into `u32`
    |
25  |     if let Err(e) = nix::unistd::setgid(Gid::from_raw(user.gid.into())) {
    |                                                               +++++++

error[E0308]: mismatched types
  --> src/utils/privilege.rs:33:55
   |
33 |     if let Err(e) = nix::unistd::setuid(Uid::from_raw(user.uid)) {
   |                                         ------------- ^^^^^^^^ expected `u32`, found `Uid`
   |                                         |
   |                                         arguments to this function are incorrect
   |
note: associated function defined here
  --> /home/kassa/.cargo/registry/src/index.crates.io-6f17d22bba15001f/nix-0.27.1/src/unistd.rs:78:18
   |
78 |     pub const fn from_raw(uid: uid_t) -> Self {
   |                  ^^^^^^^^
help: call `Into::into` on this expression to convert `Uid` into `u32`
   |
33 |     if let Err(e) = nix::unistd::setuid(Uid::from_raw(user.uid.into())) {
   |                                                               +++++++

warning: unused import: `AsyncBufReadExt`
 --> src/btrfs/manager.rs:6:10
  |
6 |     io::{AsyncBufReadExt, BufReader},
  |          ^^^^^^^^^^^^^^^

error[E0621]: explicit lifetime required in the type of `title`
  --> src/ui/components/mod.rs:64:5
   |
59 |       title: &str,
   |              ---- help: add explicit lifetime `'a` to the type of `title`: `&'a str`
...
64 | /     Column::new()
65 | |         .spacing(10)
66 | |         .push(title)
67 | |         .push(content)
   | |______________________^ lifetime `'a` required

error[E0621]: explicit lifetime required in the type of `title`
  --> src/ui/components/mod.rs:78:9
   |
72 |       title: &str,
   |              ---- help: add explicit lifetime `'a` to the type of `title`: `&'a str`
...
78 | /         Column::new()
79 | |             .spacing(10)
80 | |             .push(title)
81 | |             .push(content)
   | |__________________________^ lifetime `'a` required

error[E0004]: non-exhaustive patterns: `iced::Background::Gradient(_)` not covered
   --> src/ui/theme/mod.rs:120:66
    |
120 | ...ch background {
    |       ^^^^^^^^^^ pattern `iced::Background::Gradient(_)` not covered
    |
note: `iced::Background` defined here
   --> /home/kassa/.cargo/registry/src/index.crates.io-6f17d22bba15001f/iced_core-0.10.0/src/background.rs:6:1
    |
6   | pub enum Background {
    | ^^^^^^^^^^^^^^^^^^^
...
10  |     Gradient(Gradient),
    |     -------- not covered
    = note: the matched value is of type `iced::Background`
help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
    |
124 ~                 }),
125 ~                 iced::Background::Gradient(_) => todo!(),
    |

Some errors have detailed explanations: E0004, E0046, E0061, E0106, E0271, E0277, E0308, E0392, E0412...
For more information about an error, try `rustc --explain E0004`.
warning: `btrfs-manager` (lib) generated 14 warnings
error: could not compile `btrfs-manager` (lib) due to 107 previous errors; 14 warnings emitted