Skip to content

LastElementNameNotAvailable error on writing #186

@rrichardson

Description

@rrichardson

When attempting to serialize a struct, I get the error LastElementNameNotAvailable
Looking at the xml-rs code, that error is emitted after it fails to pop a name off of the stack.

https://github.com/netvl/xml-rs/blob/master/src/writer/emitter.rs#L351

So I'm guessing that it tried to call end_tag too many times?

I have these types (defined by the boto AWS s3 spec)

#[derive(Debug, Default, serde::Serialize, serde::Deserialize)]
#[derive(fake::Dummy)]
pub struct DeleteObjectsRequest {
    #[serde(skip)]
    pub bucket: BucketName,
    #[serde(skip)]
    pub bypass_governance_retention: Option<BypassGovernanceRetention>,
    #[serde(skip)]
    pub checksum_algorithm: Option<ChecksumAlgorithm>,
    pub delete: Delete,
    #[serde(skip)]
    pub expected_bucket_owner: Option<AccountId>,
    #[serde(skip)]
    pub mfa: Option<MFA>,
    #[serde(skip)]
    pub request_payer: Option<RequestPayer>,
}

// the relevant type is `Delete`  which is defined as 
#[derive(Debug, Default, serde::Serialize, serde::Deserialize)]
#[derive(fake::Dummy)]
pub struct Delete {
    pub objects: ObjectIdentifierList,
    pub quiet: Option<Quiet>,
}

#[derive(Debug, Default, serde::Serialize, serde::Deserialize)]
#[derive(fake::Dummy)]
pub struct ObjectIdentifier {
    pub key: ObjectKey,
    pub version_id: Option<ObjectVersionId>,
}
pub type ObjectIdentifierList = Vec<ObjectIdentifier>;

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions