iced?
This commit is contained in:
24
src/gui.rs
24
src/gui.rs
@@ -0,0 +1,24 @@
|
||||
use iced::{Element, widget::text_editor};
|
||||
|
||||
#[derive(Default)]
|
||||
pub struct State {
|
||||
content: text_editor::Content,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub enum Message {
|
||||
Edit(text_editor::Action),
|
||||
}
|
||||
|
||||
pub fn view(state: &State) -> Element<'_, Message> {
|
||||
text_editor(&state.content)
|
||||
.placeholder("Type something here...")
|
||||
.on_action(Message::Edit)
|
||||
.into()
|
||||
}
|
||||
|
||||
pub fn update(state: &mut State, message: Message) {
|
||||
match message {
|
||||
Message::Edit(action) => {}
|
||||
}
|
||||
}
|
||||
|
||||
33
src/main.rs
33
src/main.rs
@@ -1,29 +1,38 @@
|
||||
use crate::mcp::FossilEditor;
|
||||
use crate::{
|
||||
gui::{update, view},
|
||||
mcp::FossilEditor,
|
||||
};
|
||||
use iced::Executor;
|
||||
use rmcp::{ServiceExt, transport::stdio};
|
||||
use tokio::runtime::Runtime;
|
||||
use tracing_subscriber::{self, EnvFilter};
|
||||
|
||||
mod fossil;
|
||||
mod gui;
|
||||
mod matcher;
|
||||
mod mcp;
|
||||
|
||||
#[tokio::main]
|
||||
async fn main() {
|
||||
fn main() -> iced::Result {
|
||||
tracing_subscriber::fmt()
|
||||
.with_env_filter(EnvFilter::from_default_env().add_directive(tracing::Level::DEBUG.into()))
|
||||
.with_writer(std::io::stderr)
|
||||
.with_ansi(false)
|
||||
.init();
|
||||
|
||||
tracing::info!("Starting MCP server");
|
||||
let rt = Runtime::new().unwrap();
|
||||
|
||||
let editor = FossilEditor::new();
|
||||
let service = editor
|
||||
.serve(stdio())
|
||||
.await
|
||||
.inspect_err(|e| {
|
||||
tracing::error!("serving error: {:?}", e);
|
||||
})
|
||||
.unwrap();
|
||||
rt.spawn(async {
|
||||
let service = editor
|
||||
.serve(stdio())
|
||||
.await
|
||||
.inspect_err(|e| {
|
||||
tracing::error!("serving error: {:?}", e);
|
||||
})
|
||||
.unwrap();
|
||||
|
||||
service.waiting().await.unwrap();
|
||||
service.waiting().await.unwrap();
|
||||
});
|
||||
|
||||
iced::run("A cool counter", update, view)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user