контейнер не для хранения, а для регулярного использования; у него дырка с задвижкой чтоб сыпать и не рассыпать. А хранить надо в стеклянных банках (если захочется)
// Display the input and result
ui.label(&self.input);
ui.label(&self.result);
// Buttons for digits and operations
ui.horizontal(|ui| {
if ui.button(«7»).clicked() {
self.input.push('7');
}
if ui.button(«8»).clicked() {
self.input.push('8');
}
if ui.button(«9»).clicked() {
self.input.push('9');
}
if ui.button("/").clicked() {
self.input.push('/');
}
});
ui.horizontal(|ui| {
if ui.button(«4»).clicked() {
self.input.push('4');
}
if ui.button(«5»).clicked() {
self.input.push('5');
}
if ui.button(«6»).clicked() {
self.input.push('6');
}
if ui.button("*").clicked() {
self.input.push('*');
}
});
ui.horizontal(|ui| {
if ui.button(«1»).clicked() {
self.input.push('1');
}
if ui.button(«2»).clicked() {
self.input.push('2');
}
if ui.button(«3»).clicked() {
self.input.push('3');
}
if ui.button("-").clicked() {
self.input.push('-');
}
});
ui.horizontal(|ui| {
if ui.button(«0»).clicked() {
self.input.push('0');
}
if ui.button(".").clicked() {
self.input.push('.');
}
if ui.button(«C»).clicked() {
self.input.clear();
self.result.clear();
}
if ui.button("+").clicked() {
self.input.push('+');
}
});
А почему? Объяви себя 53 полом.
fn main() {
let options = eframe::NativeOptions::default();
eframe::run_native(
«Rust Calculator»,
options,
Box::new(|_cc| Ok(Box::new(CalculatorApp::default()))),
);
}
#[derive(Default)]
struct CalculatorApp {
input: String,
result: String,
}
impl CalculatorApp {
fn calculate(&mut self) {
let expression = self.input.replace(" ", "");
let result = eval(&expression);
self.result = result.unwrap_or_else(|_| «Error».to_string());
}
}
impl eframe::App for CalculatorApp {
fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) {
egui::CentralPanel::default().show(ctx, |ui| {
ui.heading(«Rust Calculator»);
// Display the input and result
ui.label(&self.input);
ui.label(&self.result);
// Buttons for digits and operations
ui.horizontal(|ui| {
if ui.button(«7»).clicked() {
self.input.push('7');
}
if ui.button(«8»).clicked() {
self.input.push('8');
}
if ui.button(«9»).clicked() {
self.input.push('9');
}
if ui.button("/").clicked() {
self.input.push('/');
}
});
ui.horizontal(|ui| {
if ui.button(«4»).clicked() {
self.input.push('4');
}
if ui.button(«5»).clicked() {
self.input.push('5');
}
if ui.button(«6»).clicked() {
self.input.push('6');
}
if ui.button("*").clicked() {
self.input.push('*');
}
});
ui.horizontal(|ui| {
if ui.button(«1»).clicked() {
self.input.push('1');
}
if ui.button(«2»).clicked() {
self.input.push('2');
}
if ui.button(«3»).clicked() {
self.input.push('3');
}
if ui.button("-").clicked() {
self.input.push('-');
}
});
ui.horizontal(|ui| {
if ui.button(«0»).clicked() {
self.input.push('0');
}
if ui.button(".").clicked() {
self.input.push('.');
}
if ui.button(«C»).clicked() {
self.input.clear();
self.result.clear();
}
if ui.button("+").clicked() {
self.input.push('+');
}
});
// Calculate button
if ui.button("=").clicked() {
self.calculate();
}
});
}
}
// Simple expression evaluator
fn eval(expression: &str) -> Result<String, String> {
let result = meval::eval_str(expression).map_err(|e| e.to_string())?;
Ok(result.to_string())
}
disk.yandex.ru/d/asuF25oHHUGxLQ
Я только скомпилил.