public static bool Equals(Value a, Value b) { if (a.RefVal == b.RefVal) { return(a.RefVal != NumTypeTag || a.NumVal == b.NumVal); } var asStrA = a.RefVal as byte[]; if (asStrA != null) { return(LString.InternalEquals(asStrA, b.RefVal as byte[])); } return(false); }
public bool Equals(Value value) { if (Val == value.RefVal) { return(true); } if (value.RefVal == Value.NumTypeTag) { var asNum = Val as NumBox; return(asNum != null && asNum.Value == value.NumVal); } var asStr = Val as byte[]; if (asStr != null) { return(LString.InternalEquals(asStr, value.RefVal as byte[])); } return(false); }
public static bool Equals(CompactValue a, CompactValue b) { if (a.Val == b.Val) { return(true); } var asNumA = a.Val as NumBox; if (asNumA != null) { var asNumB = b.Val as NumBox; return(asNumB != null && asNumA.Value == asNumB.Value); } var asStrA = a.Val as byte[]; if (asStrA != null) { return(LString.InternalEquals(asStrA, b.Val as byte[])); } return(false); }
public bool Equals(LString str) { var asStr = RefVal as byte[]; return(LString.InternalEquals(asStr, str.InternalData)); }
public bool Equals(LString value) { Debug.Assert(value.InternalData != null); return(LString.InternalEquals(value.InternalData, Val as byte[])); }