xidl-typeobject 0.85.0

A IDL codegen.
Documentation
use crate::DDS::XTypes as xt;
use crate::XidlTypeObject;

#[derive(Clone, Copy, Debug)]
pub enum TypeEquivalence {
    Minimal,
    Complete,
}

pub struct StructMemberDesc<'a> {
    pub member_id: u32,
    pub member_flags: u32,
    pub type_id: xt::TypeIdentifier,
    pub name: &'a str,
}

pub struct UnionMemberDesc<'a> {
    pub member_id: u32,
    pub member_flags: u32,
    pub type_id: xt::TypeIdentifier,
    pub name: &'a str,
    pub labels: Vec<i32>,
}

pub struct EnumLiteralDesc<'a> {
    pub value: i32,
    pub flags: u32,
    pub name: &'a str,
}

pub struct BitflagDesc<'a> {
    pub position: u16,
    pub flags: u32,
    pub name: &'a str,
}

pub struct BitfieldDesc<'a> {
    pub position: u16,
    pub flags: u32,
    pub bitcount: u8,
    pub holder_type: xt::TypeKind,
    pub name: Option<&'a str>,
}

pub fn type_identifier_none() -> xt::TypeIdentifier {
    xt::TypeIdentifier::default()
}

pub fn type_identifier_primitive(_kind: xt::TypeKind) -> xt::TypeIdentifier {
    xt::TypeIdentifier::default()
}

pub fn type_identifier_sequence(
    _element_type: xt::TypeIdentifier,
    _bound: u32,
    _eq: TypeEquivalence,
) -> xt::TypeIdentifier {
    xt::TypeIdentifier::default()
}

pub fn type_identifier_array(
    _element_type: xt::TypeIdentifier,
    _dims: Vec<u32>,
    _eq: TypeEquivalence,
) -> xt::TypeIdentifier {
    xt::TypeIdentifier::default()
}

pub fn type_identifier_map(
    _key_type: xt::TypeIdentifier,
    _value_type: xt::TypeIdentifier,
    _bound: u32,
    _eq: TypeEquivalence,
) -> xt::TypeIdentifier {
    xt::TypeIdentifier::default()
}

pub fn type_identifier_for<T: XidlTypeObject + 'static>(
    _eq: TypeEquivalence,
) -> xt::TypeIdentifier {
    xt::TypeIdentifier::default()
}

pub fn build_complete_alias(
    _name: &str,
    _type_flags: u32,
    _related_type: xt::TypeIdentifier,
) -> xt::TypeObject {
    xt::TypeObject::new_complete(xt::CompleteTypeObject::default())
}

pub fn build_minimal_alias(_type_flags: u32, _related_type: xt::TypeIdentifier) -> xt::TypeObject {
    xt::TypeObject::new_minimal(xt::MinimalTypeObject::default())
}

pub fn build_complete_struct(
    _name: &str,
    _type_flags: u32,
    _header_type_id: xt::TypeIdentifier,
    _members: Vec<StructMemberDesc<'_>>,
) -> xt::TypeObject {
    xt::TypeObject::new_complete(xt::CompleteTypeObject::default())
}

pub fn build_minimal_struct(
    _type_flags: u32,
    _header_type_id: xt::TypeIdentifier,
    _members: Vec<StructMemberDesc<'_>>,
) -> xt::TypeObject {
    xt::TypeObject::new_minimal(xt::MinimalTypeObject::default())
}

pub fn build_complete_union(
    _name: &str,
    _type_flags: u32,
    _header_type_id: xt::TypeIdentifier,
    _discriminator_type_id: xt::TypeIdentifier,
    _members: Vec<UnionMemberDesc<'_>>,
) -> xt::TypeObject {
    xt::TypeObject::new_complete(xt::CompleteTypeObject::default())
}

pub fn build_minimal_union(
    _type_flags: u32,
    _header_type_id: xt::TypeIdentifier,
    _discriminator_type_id: xt::TypeIdentifier,
    _members: Vec<UnionMemberDesc<'_>>,
) -> xt::TypeObject {
    xt::TypeObject::new_minimal(xt::MinimalTypeObject::default())
}

pub fn build_complete_enum(
    _name: &str,
    _type_flags: u32,
    _bit_bound: u16,
    _literals: Vec<EnumLiteralDesc<'_>>,
) -> xt::TypeObject {
    xt::TypeObject::new_complete(xt::CompleteTypeObject::default())
}

pub fn build_minimal_enum(
    _type_flags: u32,
    _bit_bound: u16,
    _literals: Vec<EnumLiteralDesc<'_>>,
) -> xt::TypeObject {
    xt::TypeObject::new_minimal(xt::MinimalTypeObject::default())
}

pub fn build_complete_bitmask(
    _name: &str,
    _type_flags: u32,
    _bit_bound: u16,
    _flags: Vec<BitflagDesc<'_>>,
) -> xt::TypeObject {
    xt::TypeObject::new_complete(xt::CompleteTypeObject::default())
}

pub fn build_minimal_bitmask(
    _type_flags: u32,
    _bit_bound: u16,
    _flags: Vec<BitflagDesc<'_>>,
) -> xt::TypeObject {
    xt::TypeObject::new_minimal(xt::MinimalTypeObject::default())
}

pub fn build_complete_bitset(
    _name: &str,
    _type_flags: u32,
    _fields: Vec<BitfieldDesc<'_>>,
) -> xt::TypeObject {
    xt::TypeObject::new_complete(xt::CompleteTypeObject::default())
}

pub fn build_minimal_bitset(_type_flags: u32, _fields: Vec<BitfieldDesc<'_>>) -> xt::TypeObject {
    xt::TypeObject::new_minimal(xt::MinimalTypeObject::default())
}