chromium/components/data_sharing/public/group_data.h

// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef COMPONENTS_DATA_SHARING_PUBLIC_GROUP_DATA_H_
#define COMPONENTS_DATA_SHARING_PUBLIC_GROUP_DATA_H_

#include <string>

#include "base/time/time.h"
#include "base/types/strong_alias.h"
#include "components/sync/protocol/entity_specifics.pb.h"
#include "url/gurl.h"

namespace data_sharing {

GroupId;

// GENERATED_JAVA_ENUM_PACKAGE: (
//   org.chromium.components.data_sharing.member_role)
enum class MemberRole {};

struct GroupMember {};

struct GroupToken {};

struct GroupData {};

// Represents an entity that is shared between users. This
// is similar to sync_pb::SyncEntity, but it includes group
// ID and is only for shared data types
struct SharedEntity {};

// A preview of shared entities.
struct SharedDataPreview {};

// Only takes `group_id` into account, used to allow storing GroupData in
// std::set.
bool operator<(const GroupData& lhs, const GroupData& rhs);

}  // namespace data_sharing

#endif  // COMPONENTS_DATA_SHARING_PUBLIC_GROUP_DATA_H_