1 // Copyright 2020 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "base/callback_list.h"
9 #include "base/callback.h"
13 CallbackListSubscription::CallbackListSubscription() = default;
15 CallbackListSubscription::CallbackListSubscription(base::OnceClosure closure)
16 : closure_(std::move(closure)) {}
18 CallbackListSubscription::CallbackListSubscription(
19 CallbackListSubscription&& subscription)
20 : closure_(std::move(subscription.closure_)) {}
22 CallbackListSubscription& CallbackListSubscription::operator=(
23 CallbackListSubscription&& subscription) {
24 // Note: This still works properly for self-assignment.
26 closure_ = std::move(subscription.closure_);
30 CallbackListSubscription::~CallbackListSubscription() {
34 void CallbackListSubscription::Run() {
36 std::move(closure_).Run();