示例#1
0
 public static ReadOnlyArray <T> Singleton <T>(T item)
 {
     return(ReadOnlyArray <T> .CreateFrom(item));
 }
示例#2
0
 public static ReadOnlyArray <T> Pair <T>(T first, T second)
 {
     return(ReadOnlyArray <T> .CreateFrom(first, second));
 }
示例#3
0
 internal static void WriteToFileInternal(ReadOnlyArray <byte> array, string path)
 {
     File.WriteAllBytes(path, array.elements);
 }
示例#4
0
 internal static System.Reflection.Module LoadModuleInternal(System.Reflection.Assembly assembly, string moduleName, ReadOnlyArray <byte> rawModule, ReadOnlyArray <byte> rawSymbolStore)
 {
     return(assembly.LoadModule(moduleName, rawModule.elements, rawSymbolStore.IsNull ? null : rawSymbolStore.elements));
 }
示例#5
0
        /// <summary>
        /// Replace value at location with given value if the current value is
        /// ReadOnlyArray&lt;T&gt;.Null. Return true if value was replaced.
        /// </summary>
        internal static bool InterlockedCompareExchangeIfNull(ref ReadOnlyArray <T> location, ReadOnlyArray <T> value)
        {
            var result = Interlocked.CompareExchange(ref location.elements, value.elements, null);

            return(result == null);
        }
示例#6
0
 internal static byte[] GetSha1Hash(ReadOnlyArray <byte> x)
 {
     return(new SHA1Managed().ComputeHash(x.elements));
 }
示例#7
0
 internal static ReadOnlyArray <T> InterlockedExchange(ref ReadOnlyArray <T> location, ReadOnlyArray <T> value)
 {
     return(new ReadOnlyArray <T>(Interlocked.Exchange(ref location.elements, value.elements)));
 }
 public void AddRange(ReadOnlyArray <T> items, int length)
 {
     AddRange(items.elements, length);
 }
示例#9
0
 public bool Equals(ReadOnlyArray <T> other)
 {
     return(this == other);
 }
示例#10
0
 internal bool Equals <S>(ReadOnlyArray <S> other)
 {
     return((object)this.elements == (object)other.elements);
 }
示例#11
0
 // operators cannot be generic...
 public static ReadOnlyArray <T> CreateFrom <U>(ReadOnlyArray <U> other) where U : class, T
 {
     return(new ReadOnlyArray <T>(other.elements));
 }
示例#12
0
 public void AddRange <U>(ReadOnlyArray <U> .Builder items) where U : T
 {
     AddRange(items.elements, items.count);
 }
示例#13
0
 public void AddRange <U>(ReadOnlyArray <U> items) where U : T
 {
     AddRange(items.elements);
 }
示例#14
0
 /// <summary>
 /// Reads content of the specified file.
 /// </summary>
 /// <param name="path">The path to the file.</param>
 /// <returns>Read-only binary data read from the file.</returns>
 internal static ReadOnlyArray <byte> ReadFromFile(string path)
 {
     return(ReadOnlyArray <byte> .CreateFrom(File.ReadAllBytes(path)));
 }
示例#15
0
 internal static ReadOnlyArray <T> InterlockedCompareExchange(ref ReadOnlyArray <T> location, ReadOnlyArray <T> value, ReadOnlyArray <T> comparand)
 {
     return(new ReadOnlyArray <T>(Interlocked.CompareExchange(ref location.elements, value.elements, comparand.elements)));
 }
 public ReadOnlyList(ReadOnlyArray <T> array)
 {
     this.array = array;
 }
示例#17
0
 public void AddRange(ReadOnlyArray <T> items)
 {
     AddRange(items.elements);
 }