 public class BinaryFile {
     public let fileDescriptor: FileDescriptor
     private let closeOnDeinit: Bool
-
+    
     public struct Error {
         public let code: ErrorCode
         public let message: String

        case End
    }
    
    public func seek(offset: FileOffset, from: SeekFrom = .Start) -> Result<FilePosition> {
        var position: FilePosition
        switch from {
        case .Start:

        }
    }
    
    public enum OpenResult {
        case Success(BinaryFile)
        case Failure(Error)
        
        public var error: Error? {
            switch self {
            case .Success:
                return nil
            case .Failure(let error):
                return error
                }
        }
        
        public var binaryFile: BinaryFile! {
            switch self {
            case .Success(let value):
                return value
            case .Failure:
                return nil
                }
        }
    }
    
    public class func openForReading(path: String) -> OpenResult {
        return openBinaryFile(path, flags: O_RDONLY)
    }
    
    public class func openForWriting(path: String, create: Bool = true) -> OpenResult {
        if create {
            return openBinaryFile(path, flags: O_WRONLY | O_CREAT)
        } else {
