autd3capi_wrapper_generator/traits.rs
1/*
2 * File: traits.rs
3 * Project: src
4 * Created Date: 25/05/2022
5 * Author: Shun Suzuki
6 * -----
7 * Last Modified: 22/06/2023
8 * Modified By: Shun Suzuki (suzuki@hapis.k.u-tokyo.ac.jp)
9 * -----
10 * Copyright (c) 2022 Shun Suzuki. All rights reserved.
11 *
12 */
13
14use anyhow::Result;
15
16use std::path::Path;
17
18use crate::parse::{Const, Enum, Function, Struct};
19
20pub trait Generator {
21 fn new() -> Self;
22 fn register_func(self, function: Vec<Function>) -> Self;
23 fn register_const(self, constant: Vec<Const>) -> Self;
24 fn register_enum(self, e: Vec<Enum>) -> Self;
25 fn register_struct(self, e: Vec<Struct>) -> Self;
26 fn write<P: AsRef<Path>>(self, path: P, crate_name: &str) -> Result<()>;
27}