groq-model-comparison/rust-learning/src/gui/model_response.rs
2024-12-25 19:15:41 -05:00

47 lines
1.2 KiB
Rust

use eframe::egui::{self, Response, Ui, Widget};
pub struct ModelResponse {
pub message: String,
pub status: i32,
pub time: i32,
}
impl ModelResponse {
pub fn new(message: String, status: i32, time: i32) -> Self {
Self {
message,
status,
time,
}
}
}
impl Widget for ModelResponse {
fn ui(self, ui: &mut Ui) -> Response {
egui::Frame::none()
.inner_margin(8.0)
.rounding(4.0)
.fill(egui::Color32::DARK_GRAY)
.show(ui, |ui| {
ui.horizontal(|ui| {
ui.label("Status:");
ui.label(self.status.to_string());
});
ui.horizontal(|ui| {
ui.label("Time:");
ui.label(self.time.to_string());
});
egui::Frame::none()
.inner_margin(8.0)
.rounding(4.0)
.fill(egui::Color32::WHITE)
.show(ui, |ui| {
ui.label(egui::RichText::new(self.message).color(egui::Color32::BLACK));
});
})
.response
}
}