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}