1// Copyright 2013 The Flutter 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.
4
5#ifndef FLUTTER_FML_MACROS_H_
6#define FLUTTER_FML_MACROS_H_
7
8#ifndef FML_USED_ON_EMBEDDER
9
10#define FML_EMBEDDER_ONLY [[deprecated]]
11
12#else // FML_USED_ON_EMBEDDER
13
14#define FML_EMBEDDER_ONLY
15
16#endif // FML_USED_ON_EMBEDDER
17
18#define FML_DISALLOW_COPY(TypeName) TypeName(const TypeName&) = delete
19
20#define FML_DISALLOW_ASSIGN(TypeName) \
21 TypeName& operator=(const TypeName&) = delete
22
23#define FML_DISALLOW_MOVE(TypeName) \
24 TypeName(TypeName&&) = delete; \
25 TypeName& operator=(TypeName&&) = delete
26
27#define FML_DISALLOW_COPY_AND_ASSIGN(TypeName) \
28 TypeName(const TypeName&) = delete; \
29 TypeName& operator=(const TypeName&) = delete
30
31#define FML_DISALLOW_COPY_ASSIGN_AND_MOVE(TypeName) \
32 TypeName(const TypeName&) = delete; \
33 TypeName(TypeName&&) = delete; \
34 TypeName& operator=(const TypeName&) = delete; \
35 TypeName& operator=(TypeName&&) = delete
36
37#define FML_DISALLOW_IMPLICIT_CONSTRUCTORS(TypeName) \
38 TypeName() = delete; \
39 FML_DISALLOW_COPY_ASSIGN_AND_MOVE(TypeName)
40
41#endif // FLUTTER_FML_MACROS_H_
42