1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-19 08:30:25 +02:00
Beef/BeefLibs/corlib/src/Delegate.bf

41 lines
682 B
Beef
Raw Normal View History

2019-08-23 11:56:54 -07:00
namespace System
{
class Delegate
{
void* mFuncPtr;
void* mTarget;
public static bool Equals(Delegate a, Delegate b)
{
if ((Object)a == (Object)b)
return true;
if ((Object)a == null || (Object)b == null)
return false;
return (a.mFuncPtr == b.mFuncPtr) && (a.mTarget == b.mTarget);
}
public Result<void*> GetFuncPtr()
{
if (mTarget != null)
return .Err; //("Delegate target method must be static");
return mFuncPtr;
}
public void* GetTarget()
{
return mTarget;
}
public void SetFuncPtr(void* ptr, void* target = null)
{
mTarget = target;
mFuncPtr = ptr;
}
}
struct Function : int
{
}
}