From 40bf188c5a98c084be5bd07ba5e33d94da2d6e5f Mon Sep 17 00:00:00 2001 From: Tom Alexander Date: Thu, 17 Aug 2023 03:42:18 -0400 Subject: [PATCH] Starting the owner tree module. --- src/main.rs | 21 +++++++++++++-------- src/owner_tree.rs | 14 ++++++++++++++ 2 files changed, 27 insertions(+), 8 deletions(-) diff --git a/src/main.rs b/src/main.rs index 296910a..982be1b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,7 +1,7 @@ #![feature(exit_status_error)] use axum::{http::StatusCode, routing::post, Json, Router}; +use owner_tree::{build_owner_tree, OwnerTree}; use parse::emacs_parse_org_document; -use serde::Serialize; use tower_http::services::{ServeDir, ServeFile}; mod owner_tree; @@ -18,13 +18,18 @@ async fn main() { axum::serve(listener, app).await.unwrap(); } -async fn parse_org_mode(body: String) -> Result<(StatusCode, Json), (StatusCode, String)> { - let ast = emacs_parse_org_document(&body).await.map_err(|e| (StatusCode::BAD_REQUEST, e.to_string()))?; - let ret = OwnerTree { input_source: body }; - Ok((StatusCode::OK, Json(ret))) +async fn parse_org_mode( + body: String, +) -> Result<(StatusCode, Json), (StatusCode, String)> { + _parse_org_mode(body) + .await + .map_err(|e| (StatusCode::BAD_REQUEST, e.to_string())) } -#[derive(Serialize)] -struct OwnerTree { - input_source: String, +async fn _parse_org_mode( + body: String, +) -> Result<(StatusCode, Json), Box> { + let ast = emacs_parse_org_document(&body).await?; + let owner_tree = build_owner_tree(body)?; + Ok((StatusCode::OK, Json(owner_tree))) } diff --git a/src/owner_tree.rs b/src/owner_tree.rs index 8b13789..ee2aaf5 100644 --- a/src/owner_tree.rs +++ b/src/owner_tree.rs @@ -1 +1,15 @@ +use serde::Serialize; +pub fn build_owner_tree(file_contents: C) -> Result> +where + C: AsRef, +{ + Ok(OwnerTree { + input_source: file_contents.as_ref().to_owned(), + }) +} + +#[derive(Serialize)] +pub struct OwnerTree { + input_source: String, +}