Общедоступные структуры и перечисления

использование pub для обозначения структур и перечислений как общедоступных

pub для структуры и элементов Чтобы сделать публичными структуру, нужно объявить pub саму структуру и те элементы, которые выделяем в публичность1

#![allow(unused)]
fn main() {
mod back_of_house {
    pub struct Breakfast {
        pub toast: String,
        seasonal_fruit: String,
    }

    impl Breakfast {
        pub fn summer(toast: &str) -> Breakfast {
            Breakfast {
                toast: String::from(toast),
                seasonal_fruit: String::from("peaches"),
            }
        }
    }
}

pub fn eat_at_restaurant() {
      // Order a breakfast in the summer with Rye toast.
  let mut meal = back_of_house::Breakfast::summer("Rye");
  // Change our mind about what bread we'd like.
  meal.toast = String::from("Wheat");
  println!("I'd like {} toast please", meal.toast);

   // The next line won't compile if we uncomment it; we're not allowed
   // to see or modify the seasonal fruit that comes with the meal.
   // meal.seasonal_fruit = String::from("blueberries");
}

}

Для enum

В отличии от структуры, если мы сделаем общедоступным перечисление, то все его варианты будут общедоступными. Нужно только указать pub перед ключевым словом enum

#![allow(unused)]
fn main() {
mod back_of_house {
    pub enum Appetizer {
        Soup,
        Salad,
    }
}
}

Note

Это пример сообщения

Example

This is a code example.

#![allow(unused)]
fn main() {
println!("hello world");
}

  1. Нужно установить pub напротив каждого элемента структуры