Files
superwork/vscode/src/codeReader/fixtures/rustLibs.rs
T

49 lines
1.1 KiB
Rust

use serde::{Deserialize, Serialize};
/// 桌面端列表里的一行代理。
#[derive(Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AgentRow {
#[serde(rename = "agent_id")]
pub id: Uuid,
pub name: String,
#[serde(skip)]
secret: String,
}
use thiserror::Error;
/// 读写代理时出的错。
#[derive(Error, Debug)]
pub enum AgentError {
/// 这个 id 没有代理
#[error("agent {id} 不存在")]
NotFound { id: Uuid },
/// 调用上游失败
#[error("上游错误")]
Upstream(#[from] Other),
}
use axum::routing::get;
/// 按 id 取一个代理。
#[get("/agents/{id}")]
async fn get_agent(Path(id): Path<Uuid>) -> Result<Json<AgentRow>, StatusCode> {
todo!()
}
let app = Router::new().route("/health", get(health));
use sqlx::query_as;
// 按 id 取一行。
let row = sqlx::query_as!(AgentRow, "SELECT id, name FROM agents WHERE id = $1", id);
use tauri::State;
/// 让窗口把这一行改名。
#[tauri::command]
async fn rename_agent(state: State<App>, name: String) -> Result<String, String> {
todo!()
}