Задачи на ООП в Rust. Часть 8
Сделайте associated function fn new() -> Self без &self — аналог static constructor.
Сделайте fn count() -> u32 — счётчик созданных объектов через static mut или AtomicU32 (concept).
Дан struct:
struct Config { host: String, port: u16 }
Сделайте Config::localhost() и Config::from_env().
Сделайте associated constants const MAX_SIZE: u32 = 100; в impl.
Associated function для парсинга: fn from_str(s: &str) -> Option<Self>.
Сравните associated functions в Rust и static methods в других языках.
Сделайте factory method fn guest() -> User и fn admin() -> User.
Используйте Self в associated functions.
Сделайте singleton-like через once_cell::sync::Lazy (concept).
Создайте struct IdGenerator со счётчиком на AtomicU64 и методом next_id, возвращающим уникальный id.