Skip to content

Deprecate non-ComResult Results #148

@Rantanen

Description

@Rantanen

I don't think there's much point in supporting custom results. One intended benefit for this was to support things like returning io::Result directly - but having the user do into() on that isn't asking too much more in the end.

Also given Microsoft is developing com-rs, I'm fine giving up on the "Intercom needs to be able to call any COM API" requirement and instead aim for "Most COM APIs but with the best ergonomics possible" and I feel requiring ComResult for fallible methods will give more benefits:

  • We can remove #[infallible] and instead assume that any method that doesn't return ComResult should be considered #[infallible].
  • We might be able to target stable Rust. The error traits are one of the only ones that require specialization currently.
  • With stricter types, it should be easier to figure APIs for supporting custom error info when serializing into ComError.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions