Skip to content

Nested models don't seem to work #8

@luca-della-vedova

Description

@luca-della-vedova

When trying to build a nested model I noticed that the compiler complained that SdfModel has no model field, upon looking at the codegen that does indeed seem to be the case:

pub struct SdfModel {
  #[yaserde(attribute, rename = "name")]
  pub name: String,
  #[yaserde(attribute, rename = "canonical_link")]
  pub canonical_link: Option<String>,
  #[yaserde(attribute, rename = "placement_frame")]
  pub placement_frame: Option<String>,
  #[yaserde(child, rename = "static")]
  pub r#static: Option<bool>,
  #[yaserde(child, rename = "self_collide")]
  pub self_collide: Option<bool>,
  #[yaserde(child, rename = "allow_auto_disable")]
  pub allow_auto_disable: Option<bool>,
  #[yaserde(child, rename = "include")]
  pub include: Vec<SdfModelInclude>,
  #[yaserde(child, rename = "enable_wind")]
  pub enable_wind: Option<bool>,
  #[yaserde(child, rename = "frame")]
  pub frame : Vec<SdfFrame> /*Many*/,
  #[yaserde(child, rename = "pose")]
  pub pose : Option<SdfPose> /*Optional*/,
  #[yaserde(child, rename = "link")]
  pub link : Vec<SdfLink> /*Many*/,
  #[yaserde(child, rename = "joint")]
  pub joint : Vec<SdfJoint> /*Many*/,
  #[yaserde(child, rename = "plugin")]
  pub plugin : Vec<SdfPlugin> /*Many*/,
  #[yaserde(child, rename = "gripper")]
  pub gripper : Vec<SdfGripper> /*Many*/,
}

However model is indeed an allowed tag in SDF 1.10 that seems to be the one used by this library (i.e. here).
Any idea what might be happening? I guess it's somewhat of a chicken and egg problem where a struct that is being defined needs to be contained in itself?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions