Loads type definitions from the specified module.
Returns an intermediate representation (IR) that can be fed to the
generation functions, like
Note that parsing a Rust module is complicated. While most of the heavy
lifting is performed by
syn, syn does not understand the various options
for laying out a crate—and there are many attributes and edition settings
that control how modules can be laid out on the file system. This function
does not attempt to be fully general and only handles the file layout
currently required by Materialize.
Analyzing Rust types is also complicated. This function only handles basic
Rust containers, like
Vec. It does, however, endeavor to
produce understandable error messages when it encounters a type it does not
know how to handle.