docs: public boolean matches(RxBleInternalScanResult scanResult) {
          if (scanResult == null) {
              return false;
          }
          BluetoothDevice device = scanResult.getBluetoothDevice();
          // Device match.
          if (mDeviceAddress != null
                  && (device == null || !mDeviceAddress.equals(device.getAddress()))) {
              return false;
          }
  
          ScanRecord scanRecord = scanResult.getScanRecord();
  
          // Scan record is null but there exist filters on it.
          if (scanRecord == null
                  && (mDeviceName != null || mServiceUuid != null || mManufacturerData != null
                  || mServiceData != null)) {
              return false;
          }
  
          // Local name match.
          if (mDeviceName != null) {
              if (!(mDeviceName.equals(scanRecord.getDeviceName()) || mDeviceName.equals(device.getName()))) {
                  return false;
              }
          }
  
          // UUID match.
          if (mServiceUuid != null && !matchesServiceUuids(mServiceUuid, mServiceUuidMask,
                  scanRecord.getServiceUuids())) {
              return false;
          }
  
          // Service data match
          if (mServiceDataUuid != null) {
              if (!matchesPartialData(mServiceData, mServiceDataMask,
                      scanRecord.getServiceData(mServiceDataUuid))) {
                  return false;
              }
          }
  
          // Manufacturer data match.
          if (mManufacturerId >= 0) {
              if (!matchesPartialData(mManufacturerData, mManufacturerDataMask,
                      scanRecord.getManufacturerSpecificData(mManufacturerId))) {
                  return false;
              }
          }
          // All filters match.
          return true;
      }