Passing Custom Getter And Setter To Property Wrapper Initializer

The problem is that you use the getter and setter of the computed property here! What if you want to add a didSet or willSet. Swift does not allow you to do that on regular computed properties today, this would create a strange exception. Any reader not familiar with property wrappers would not understand what these get and set will actually do, if they are part of the property or just translated to some closures.

Would this be a more elegant solution for you?

struct Circle: View {
  @State
  var radius: CGFloat = 1

  @Binding
  var diameter: CGFloat

  init() {
    _diameter = Binding(
      get: { self.radius * 2 },
      set: { newValue in self.radius = newValue / 2 }
    )
  }
}