#include "swap.h"

#include <stdlib.h>
#include <string.h>

void swap_loop(char* __restrict a, char* __restrict b, size_t len) {
    while (len--) {
        char tmp = *a;
        *a++     = *b;
        *b++     = tmp;
    };
}

void swap_malloc(char* __restrict a, char* __restrict b, size_t len) {
    char *temp = malloc(len);
    memmove(temp,a,len);
    memmove(a,b,len);
    memmove(b,temp,len);
    free(temp);
}

void swap_alloca(char* __restrict a, char* __restrict b, size_t len) {
    char temp[len];
    memmove(temp,a,len);
    memmove(a,b,len);
    memmove(b,temp,len);
}
