byType<T> method

T? byType<T>({
  1. T onTextRequest(
    1. NearbyMessageTextRequest
    )?,
  2. T onTextResponse(
    1. NearbyMessageTextResponse
    )?,
  3. T onFilesRequest(
    1. NearbyMessageFilesRequest
    )?,
  4. T onFilesResponse(
    1. NearbyMessageFilesResponse
    )?,
})

Implementation

T? byType<T>({
  T Function(NearbyMessageTextRequest)? onTextRequest,
  T Function(NearbyMessageTextResponse)? onTextResponse,
  T Function(NearbyMessageFilesRequest)? onFilesRequest,
  T Function(NearbyMessageFilesResponse)? onFilesResponse,
}) {
  if (this is NearbyMessageTextRequest && onTextRequest != null) {
    return onTextRequest(this as NearbyMessageTextRequest);
  } else if (this is NearbyMessageTextResponse && onTextResponse != null) {
    return onTextResponse(this as NearbyMessageTextResponse);
  } else if (this is NearbyMessageFilesRequest && onFilesRequest != null) {
    return onFilesRequest(this as NearbyMessageFilesRequest);
  } else if (this is NearbyMessageFilesResponse && onFilesResponse != null) {
    return onFilesResponse(this as NearbyMessageFilesResponse);
  }
  return null;
}