910e62b5创建于 1月15日历史提交
// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef ASH_PUBLIC_CPP_WALLPAPER_SEA_PEN_IMAGE_H_
#define ASH_PUBLIC_CPP_WALLPAPER_SEA_PEN_IMAGE_H_

#include <stdint.h>

#include <string>

#include "ash/public/cpp/ash_public_export.h"

namespace ash {

// A simplified version of a Manta API response with only the relevant fields
// for SeaPen wallpaper.
// @see //components/manta
struct ASH_PUBLIC_EXPORT SeaPenImage {
  SeaPenImage(std::string jpg_bytes,
              uint32_t id,
              std::string generative_prompt = "");

  SeaPenImage(SeaPenImage&& other);
  SeaPenImage& operator=(SeaPenImage&& other);

  SeaPenImage(const SeaPenImage&) = delete;
  SeaPenImage& operator=(const SeaPenImage&) = delete;

  ~SeaPenImage();

  // A bytes string of the image data encoded in jpg format.
  std::string jpg_bytes;

  // A unique identifier for this image. Set by the Manta API.
  uint32_t id;

  // The prompt used to generate the image. This is not always the same as the
  // user-provided prompt.
  std::string generative_prompt;
};

}  // namespace ash

#endif  // ASH_PUBLIC_CPP_WALLPAPER_SEA_PEN_IMAGE_H_