[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [RFC PATCH 07/25] tools/xenbindgen: Add support for structs in TOML specs



Hi,

> +/// An IDL type. A type may be a primitive integer, a pointer to an IDL type,
> +/// an array of IDL types or a struct composed of IDL types. Every integer 
> must
> +/// be aligned to its size.
> +///
> +/// FIXME: This enumerated type is recovered as-is from the `typ` field in 
> the
> +/// TOML files. Ideally, that representation should be more ergonomic and the
> +/// parser instructed to deal with it.
> +#[allow(clippy::missing_docs_in_private_items)]
> +#[derive(Debug, serde::Deserialize, PartialEq)]
> +#[serde(rename_all = "lowercase", tag = "tag", content = "args")]
> +pub enum Typ {
> +    Struct(String),
> +    U8,
> +    U16,
> +    U32,
> +    U64,
> +    I8,
> +    I16,
> +    I32,
> +    I64,
> +    Ptr(Box<Typ>),
> +    Array(Box<Typ>, usize),
> +}
> +

I think we can name it Type (it doesn't clash with a keyword actually)

> +
> +/// Deserialized form of a field within a hypercall struct (see 
> [`StructDef`])
> +#[derive(Debug, serde::Deserialize)]
> +pub struct FieldDef {
> +    /// Name of the field
> +    pub name: String,
> +    /// Description of what the field is for. This string is added as a 
> comment
> +    /// on top of the autogenerated field.
> +    pub description: String,
> +    /// Type of the field.
> +    pub typ: Typ,
> +}
> +

regarding this "typ" name, we can either use the "raw identifier" syntax 
with r#type to have it "technically" named 'type' or use
#[serde(rename = "type")]
to have it named "type" during deserialization even if the field is 
still "typ"

Cheers
Teddy


Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.