public static class PtrAccessor
{
public static PtrType<T2> Get<T2, T>(this PtrType<T> self, int i)
where T: IPtrMarker<T2>
{
// IDK take an index and do magic with the inner of PtrType
throw null;
}
public static PtrType<T3> Get<T3, T2, T>(this PtrType<T> self, int i, int j)
where T: IPtrMarker<T2>
where T2: IPtrMarker<T3>
{
return self.Get(i).Get(j);
}
}
public static class PtrAccessor
{
public static PtrType<T2> Get<T2, T>(this PtrType<T> self, int i)
where T: IPtrMarker<T2>
{
// IDK take an index and do magic with the inner of PtrType
throw null;
}
public static PtrType<T3> Get<T3, T2, T>(this PtrType<T> self, int i, int j)
where T: IPtrMarker<T2>
where T2: IPtrMarker<T3>
{
return self.Get(i).Get(j);
}
}