Общедоступные структуры и перечисления
использование
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"); }
-
Нужно установить pub напротив каждого элемента структуры ↩