Free cookie consent management tool by TermsFeed Policy Generator

source: branches/CodeEditor/HeuristicLab.ExtLibs/HeuristicLab.Cecil/0.9.5/Mono.Cecil-0.9.5/Mono.Cecil/Mono.Cecil/IMemberDefinition.cs @ 11700

Last change on this file since 11700 was 11700, checked in by jkarder, 10 years ago

#2077: created branch and added first version

File size: 2.8 KB
Line 
1//
2// IMemberDefinition.cs
3//
4// Author:
5//   Jb Evain (jbevain@gmail.com)
6//
7// Copyright (c) 2008 - 2011 Jb Evain
8//
9// Permission is hereby granted, free of charge, to any person obtaining
10// a copy of this software and associated documentation files (the
11// "Software"), to deal in the Software without restriction, including
12// without limitation the rights to use, copy, modify, merge, publish,
13// distribute, sublicense, and/or sell copies of the Software, and to
14// permit persons to whom the Software is furnished to do so, subject to
15// the following conditions:
16//
17// The above copyright notice and this permission notice shall be
18// included in all copies or substantial portions of the Software.
19//
20// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27//
28
29namespace Mono.Cecil {
30
31  public interface IMemberDefinition : ICustomAttributeProvider {
32
33    string Name { get; set; }
34    string FullName { get; }
35
36    bool IsSpecialName { get; set; }
37    bool IsRuntimeSpecialName { get; set; }
38
39    TypeDefinition DeclaringType { get; set; }
40  }
41
42  static partial class Mixin {
43
44    public static bool GetAttributes (this uint self, uint attributes)
45    {
46      return (self & attributes) != 0;
47    }
48
49    public static uint SetAttributes (this uint self, uint attributes, bool value)
50    {
51      if (value)
52        return self | attributes;
53
54      return self & ~attributes;
55    }
56
57    public static bool GetMaskedAttributes (this uint self, uint mask, uint attributes)
58    {
59      return (self & mask) == attributes;
60    }
61
62    public static uint SetMaskedAttributes (this uint self, uint mask, uint attributes, bool value)
63    {
64      if (value) {
65        self &= ~mask;
66        return self | attributes;
67      }
68
69      return self & ~(mask & attributes);
70    }
71
72    public static bool GetAttributes (this ushort self, ushort attributes)
73    {
74      return (self & attributes) != 0;
75    }
76
77    public static ushort SetAttributes (this ushort self, ushort attributes, bool value)
78    {
79      if (value)
80        return (ushort) (self | attributes);
81
82      return (ushort) (self & ~attributes);
83    }
84
85    public static bool GetMaskedAttributes (this ushort self, ushort mask, uint attributes)
86    {
87      return (self & mask) == attributes;
88    }
89
90    public static ushort SetMaskedAttributes (this ushort self, ushort mask, uint attributes, bool value)
91    {
92      if (value) {
93        self = (ushort) (self & ~mask);
94        return (ushort) (self | attributes);
95      }
96
97      return (ushort) (self & ~(mask & attributes));
98    }
99  }
100}
Note: See TracBrowser for help on using the repository browser.