crossplane / crossplane/crossplane-tools

Target smaller interfaces

Open
#4 1 comment 1 reaction 0 assignees View on GitHub
enhancement wontfix
Dominant language
Go
Stars
37
Forks
38
PR merge metrics
No merged PRs in 30d

Description

### What problem are you facing?

crossplane-runtime interfaces like `resource.Managed` are composed of other, more tightly scoped interfaces such as `resource.ClassReferencer`. angryjet currently targets the broader interfaces; it will generate the `resource.Managed` method set for types that are support the entire functionality of `resource.Managed`, or it will generate nothing. This means types like Azure storage containers that look _almost_ but not quite like a managed resource (due to missing embedded `ResourceSpec`) get no generated methods, despite being capable of satisfying many of the interfaces that `resource.Managed` is composed from.

### How could Crossplane help solve your problem?

angryjet could detect the potential to satsify, and generate the methods of, smaller interfaces like `resource.ClassReferencer` rather than broad interfaces like `resource.Managed`. This may require some thought as to what files the (generally 1-2) getters and setters of these interfaces would be written to.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.