Add str.__rmul__

This commit is contained in:
K. Lange 2021-06-09 16:54:57 +09:00
parent edf8b26834
commit 7a946bd84a

View File

@ -317,6 +317,7 @@ _freeAndDone:
KRK_METHOD(str,__mul__,{
METHOD_TAKES_EXACTLY(1);
if (!IS_INTEGER(argv[1])) return NOTIMPL_VAL();
CHECK_ARG(1,int,krk_integer_type,howMany);
if (howMany < 0) howMany = 0;
@ -334,6 +335,12 @@ KRK_METHOD(str,__mul__,{
return OBJECT_VAL(krk_takeString(out, totalLength));
})
KRK_METHOD(str,__rmul__,{
METHOD_TAKES_EXACTLY(1);
if (IS_INTEGER(argv[1])) return FUNC_NAME(str,__mul__)(argc,argv,hasKw);
return NOTIMPL_VAL();
})
#define unpackArray(counter, indexer) do { \
for (size_t i = 0; i < counter; ++i) { \
if (!IS_STRING(indexer)) { errorStr = krk_typeName(indexer); goto _expectedString; } \
@ -882,6 +889,7 @@ void _createAndBind_strClass(void) {
BIND_METHOD(str,__add__);
BIND_METHOD(str,__len__);
BIND_METHOD(str,__mul__);
BIND_METHOD(str,__rmul__);
BIND_METHOD(str,__contains__);
BIND_METHOD(str,__lt__);
BIND_METHOD(str,__gt__);