main/
main.rs

1use ocaml_gen::prelude::*;
2use ocamlgen_test_stubs::*;
3
4use std::fmt::Write as _;
5use std::io;
6use std::io::Write;
7
8fn main() -> std::io::Result<()> {
9    let mut w = String::new();
10    let env = &mut Env::new();
11
12    ocaml_gen::decl_fake_generic!(T1, 0);
13
14    ocaml_gen::decl_type!(w, env, SingleTuple => "single_tuple");
15    ocaml_gen::decl_func!(w, env, new => "new_t");
16    ocaml_gen::decl_func!(w, env, print => "print_t");
17
18    ocaml_gen::decl_module!(w, env, "Car", {
19        ocaml_gen::decl_type!(w, env, Car => "t");
20    });
21
22    ocaml_gen::decl_func!(w, env, fn_one_parameter => "fn_one_parameter");
23    ocaml_gen::decl_func!(w, env, fn_two_parameters => "fn_two_parameters");
24    ocaml_gen::decl_func!(w, env, fn_three_parameters => "fn_three_parameters");
25    ocaml_gen::decl_func!(w, env, fn_four_parameters => "fn_four_parameters");
26    ocaml_gen::decl_func!(w, env, fn_five_parameters => "fn_five_parameters");
27    ocaml_gen::decl_func!(w, env, fn_six_parameters => "fn_six_parameters");
28    ocaml_gen::decl_func!(w, env, test_add_i32 => "test_add_i32");
29    ocaml_gen::decl_func!(w, env, test_add_usize => "test_add_usize");
30
31    ocaml_gen::decl_func!(w, env, test_bytes_get => "test_bytes_get");
32
33    ocaml_gen::decl_func!(w, env, test_get_ascii_code => "test_get_ascii_code");
34
35    ocaml_gen::decl_module!(w, env, "Toyota", {
36        ocaml_gen::decl_type_alias!(w, env, "t" => Car);
37        ocaml_gen::decl_func!(w, env, create_toyota => "create_toyota");
38    });
39
40    ocaml_gen::decl_module!(w, env, "Packages", {
41        ocaml_gen::decl_type!(w, env, Package<T1> => "t");
42    });
43
44    ocaml_gen::decl_module!(w, env, "Gifts", {
45        ocaml_gen::decl_type_alias!(w, env, "t" => Package<String>);
46        ocaml_gen::decl_func!(w, env, pack_present => "pack_present");
47    });
48
49    io::stdout().write_all(w.as_bytes())?;
50    Ok(())
51}