Skip to main content

zlink_idl/
lib.rs

1//! Interface Definition Language (IDL) support for Varlink.
2//!
3//! This crate provides the types and parser for working with Varlink IDL definitions. It is
4//! standalone: it does not pull in the rest of zlink.
5#![cfg_attr(not(test), no_std)]
6#![doc(
7    html_logo_url = "https://raw.githubusercontent.com/z-galaxy/zlink/3660d731d7de8f60c8d82e122b3ece15617185e4/data/logo.png"
8)]
9#![deny(
10    missing_debug_implementations,
11    nonstandard_style,
12    rust_2018_idioms,
13    missing_docs
14)]
15#![warn(unreachable_pub, clippy::std_instead_of_core)]
16#![cfg_attr(not(doctest), doc = include_str!("../README.md"))]
17
18extern crate alloc;
19
20mod list;
21pub use list::List;
22
23mod r#type;
24pub use r#type::{Type, TypeRef};
25
26mod custom_object;
27pub use custom_object::CustomObject;
28
29mod custom_enum;
30pub use custom_enum::CustomEnum;
31
32mod enum_variant;
33pub use enum_variant::EnumVariant;
34
35mod custom_type;
36pub use custom_type::CustomType;
37
38mod field;
39pub use field::{Field, Parameter};
40
41#[doc(hidden)]
42pub mod flatten;
43
44mod method;
45pub use method::Method;
46
47mod error;
48pub use error::Error;
49
50mod comment;
51pub use comment::Comment;
52
53mod interface;
54pub use interface::Interface;
55
56#[cfg(feature = "parse")]
57mod name;
58#[cfg(feature = "parse")]
59pub use name::{is_valid_field_name, is_valid_interface_name, is_valid_type_name};
60
61#[cfg(feature = "parse")]
62pub mod parse;