fluentci_shared/
directory.rs

1use extism::{convert::Json, *};
2use fluentci_common::directory::directory as common_directory;
3use fluentci_common::directory::entries as common_entries;
4
5use crate::state::State;
6
7host_fn!(pub directory(user_data: State; path: String) -> Json<Directory> {
8    let state = user_data.get()?;
9    let state = state.lock().unwrap();
10    let graph = state.graph.clone();
11
12    let directory = common_directory(graph, path, true)?;
13
14    Ok(Json(directory))
15});
16
17host_fn!(pub entries(user_data: State; path: String) -> Json<Vec<String>> {
18    match common_entries(path) {
19        Ok(entries) => Ok(Json(entries)),
20        Err(err) => Err(err),
21    }
22});