hhvm/hsl-experimental

[File] missing interfaces / sealed interfaces

azjezz opened this issue · 1 comments

File\ seems to not provide interfaces for NonDisposable handles, instead it provides final implementation, meaning users can't extends or wrap these implementations in any way.

another issue is that the interfaces provided in File\ are in no way consistent with IO\, some are public, some are sealed.

example :

  • HH\Lib\Experimental\IO\ReadWriteHandle <- public interface

  • HH\Lib\Experimental\IO\NonDisposableReadWriteHandle <- public interface

  • HH\Lib\Experimental\IO\DisposableReadHandle <- public interface

  • HH\Lib\Experimental\File\ReadWriteHandle <- sealed interface ?

  • HH\Lib\Experimental\File\NonDisposableReadWriteHandle <- final class ?

  • HH\Lib\Experimental\File\DisposableReadHandle <- public interface ?

naming convention is another issue in File\, as it is impossible to tell the difference between interfaces and classes ( unlike IO\ where everything is an interface ).

fixed in #91