Your understanding is correct.
Note: public Test { }must bepublic struct Test { }
A more interesting way to post your scenario 3 would be
extension Test {
private var prop2: String { return "" }
}
as well as
internal extension Test {
public var prop2: String { return "" }
}
, , , internal, public. private, , public internal.