class GetRequest extends BaseKeyValueRequest<GetResponse> {

  @Override
  public GetResponse decode(final ByteBuf response, KeyValueChannelContext ctx) {
    ResponseStatus status = decodeStatus(response);
    long cas = cas(response);

    if (status.success()) {
      byte[] bytes = bodyAsBytes(response);
      byte[] content = bytes != null ? tryDecompression(bytes, datatype(response)) : Bytes.EMPTY_BYTE_ARRAY;
      int flags = extrasAsInt(response, 0, 0);
      return new GetResponse(status, content, cas, flags);
    } else {
      return new GetResponse(status, null, cas, 0);
    }
  }

  public  GetRequest(final String key, final Duration timeout, final CoreContext ctx,
                    final CollectionIdentifier collectionIdentifier, final RetryStrategy retryStrategy, final InternalSpan span);

}