chromium/components/feed/core/v2/web_feed_subscriptions/web_feed_types.h

// Copyright 2022 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_FEED_CORE_V2_WEB_FEED_SUBSCRIPTIONS_WEB_FEED_TYPES_H_
#define COMPONENTS_FEED_CORE_V2_WEB_FEED_SUBSCRIPTIONS_WEB_FEED_TYPES_H_

#include <iosfwd>
#include <optional>

#include "components/feed/core/proto/v2/store.pb.h"
#include "components/feed/core/proto/v2/wire/web_feeds.pb.h"
#include "components/feed/core/v2/operation_token.h"
#include "components/feed/core/v2/public/types.h"

// Defines some types needed by WebFeedSubscriptionCoordinator and its models.

namespace feed {

struct WebFeedSubscriptionInfo {};

// Identifies how the in flight change should be processed.
enum class WebFeedInFlightChangeStrategy {};
std::ostream& operator<<(std::ostream& os,
                         const WebFeedInFlightChangeStrategy& strategy);

// Represents an in-progress attempt to change a Web Feed subscription.
struct WebFeedInFlightChange {};
std::ostream& operator<<(std::ostream& os, const WebFeedInFlightChange& change);

}  // namespace feed

#endif  // COMPONENTS_FEED_CORE_V2_WEB_FEED_SUBSCRIPTIONS_WEB_FEED_TYPES_H_