     // MARK: - Methods
     
     public func encode(_ encodables: [GAPData]) -> Data {
-        do { return try _encode(encodables) }
+        do { return try Self.encode(encodables) }
         catch { fatalError("Unable to encode GAP Data: \(error)") }
     }
     

        }
        var data = DataType(capacity: length)
        for (index, encodable) in encodables.enumerated() {
            let dataLength = dataLengths[index]
            data += UInt8(dataLength + 1)
            data += type(of: encodable).dataType.rawValue
            data.append(encodable)
        }
        assert(data.count == length, "Invalid data length")
        return data
    }
}

        return encode(encodables)
    }
    
    public func encodeAdvertisingData(_ encodables: [GAPData]) throws -> LowEnergyAdvertisingData {
        return try Self.encode(encodables)
    }
    
    @inline(__always)
    internal static func encode<S, DataType>(_ encodables: S) throws -> DataType where S: Sequence, S.Element == GAPData, DataType: GAPDataContainer {
        
        let dataLengths = encodables.map { $0.dataLength }
        let length = dataLengths.reduce(0, { $0 + $1 + 2 })
