<div dir="ltr">I agree with Tanner, an AccessControl enum clearly defines the access of a target and provides flexibility for future.</div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jul 8, 2016 at 3:17 AM, Tanner Nelson <span dir="ltr">&lt;<a href="mailto:me@tanner.xyz" target="_blank">me@tanner.xyz</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">Really happy to see this proposal. It will cut build times for packages that use my library significantly.<div><br></div><div>The only point I would bring up is about using a `Bool` for `isPrivate`. This obviously only gives us 2 levels of access control. Something like this would give more flexibility:</div><div><br></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div>enum AccessControl {</div><div>    case .public</div><div>    case .private</div><div>}</div><div><br></div><div>Target(name: &quot;SampleCLI&quot;, dependencies: [&quot;FooCore&quot;], access: .private)</div></blockquote><div><br></div><div>Packages could possibly want more fine grained control over the access control. e.g, Package Foo wants only packages that <i>directly</i> depend on Foo to receive a module, but not packages that depend on a package Bar that depends on Foo. This would be much easier to add as an additional case to the `enum AccessControl` but impossible to add for `isPrivate: Bool`</div><div><br></div><div>Thanks Ankit for the great proposal!</div><span class="HOEnZb"><font color="#888888"><div>Tanner</div></font></span></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">Ankit<br><br></div>
</div>