Skip Navigation

Trying to get a better error message out of Lemmy 0.18.1 unmatched enum

I don't know Rust, but trying to hack on Lemmy 0.18.1 enough to get a better error message out.

error: data did not match any variant of untagged enum AnnouncableActivities

where: crates/apub/src/activities/community/announce.rs, line: 46

https://github.com/LemmyNet/lemmy/blob/0c82f4e66065b5772fede010a879d327135dbb1e/crates/apub/src/activities/community/announce.rs#L46

That seems to be the function parameters themselves?

Is the error caused by RawAnnouncableActivities not matching the enum AnnouncableActivities and the try_into?

 
          warn!("zebratrace receive {:?}", self);


  

Works for adding logging, but I'd like the code to log self only when the enum does not match (errors). Thank you.

6 comments
  • Your analysis sounds correct - data did not match any variant of untagged enum is definitely from serde IIRC - but I can't say for certain just by looking at the code.

    but I’d like the code to log self only when the enum does not match (errors). Thank you.

    Try changing line 48 to this:

     rs
        
    let object = match self.clone().try_into::<AnnouncableActivities>() {
        Ok(object) => object,
        Err(e) => {
            warn!("zebratrace receive {:?}", self);
            return Err(e);
        }
    }
    
      

    (This probably isn't the best way to do this, but it's what I came up with off the top of my head :P)

6 comments