-
Notifications
You must be signed in to change notification settings - Fork 3
/
UnmanagedRefDebugView.cs
51 lines (43 loc) · 1.61 KB
/
UnmanagedRefDebugView.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
namespace Arenas {
internal unsafe readonly struct UnmanagedRefDebugView<T> where T : unmanaged {
private readonly UnmanagedRef<T> uref;
public UnmanagedRefDebugView(UnmanagedRef<T> uref) {
this.uref = uref;
}
public T[] Contents {
get {
return uref.ToArray();
}
}
public Arena Arena { get { return uref.Arena; } }
public T* Value { get { return uref.Value; } }
public bool HasValue { get { return uref.HasValue; } }
public RefVersion Version { get { return uref.Version; } }
public int ElementCount { get { return uref.ElementCount; } }
public int Size { get { return uref.Size; } }
}
internal readonly struct UnmanagedRefDebugView {
private readonly UnmanagedRef uref;
public UnmanagedRefDebugView(UnmanagedRef uref) {
this.uref = uref;
}
public object[] Contents {
get {
return uref.ToArray();
}
}
public Type Type { get { return uref.Type; } }
public Arena Arena { get { return uref.Arena; } }
public IntPtr Value { get { return uref.Value; } }
public bool HasValue { get { return uref.HasValue; } }
public RefVersion Version { get { return uref.Version; } }
public int ElementCount { get { return uref.ElementCount; } }
public int Size { get { return uref.Size; } }
}
}