Files
bed/src/main.cc
T

89 lines
2.5 KiB
C++

#include "io/file.h"
#include "pch.h"
#include "vase/shard.h"
#include "vase/vase.h"
int main(int argc, char *argv[]) {
/*const char *text_o =
"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\n"
"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\n"
"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz\n"
"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz";
uint32_t len = strlen(text_o);
char *text = strdup(text_o);*/
const char *path;
if (argc >= 2)
path = argv[1];
else
throw "Please give filename.";
uint32_t len;
char *text;
read_file(path, &text, &len);
auto start = std::chrono::steady_clock::now();
Vase vase = Vase(text, len);
auto end = std::chrono::steady_clock::now();
std::cout << "Time to load: "
<< std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count()
<< " ms\n";
std::cout << "Press Enter to continue...";
std::cin.get();
vase.insert(1, "bcgr\ntt", 5);
vase.insert(2, "cgr\ntt", 5);
vase.insert(58, "gr\ntt", 5);
vase.insert(100, "gr\ntt", 5);
vase.insert(20, "gr\ntt", 5);
vase.type(5, '1');
vase.type(6, '2');
vase.type(7, '3');
vase.type(8, '4');
vase.erase(offset_of(vase.root, 7, 3), -3);
// supports gisxUn and m as inverse (as multiline is default.)
// print_regex(matches); // debug
start = std::chrono::steady_clock::now();
std::vector<RegexMatch> matches = regex_search(vase.root, "here", 0, vase.length(), "");
end = std::chrono::steady_clock::now();
std::cout << "Time search: "
<< std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count()
<< " ms\n";
// print_shard(vase.root); // debug
/*LineIterator it(vase.root, 0);
std::string line;
while (it.next(line))
std::cout << line << "\n";*/
/*start = std::chrono::steady_clock::now();
vase.regex_search_replace("here", 0, vase.length(), "hello", "");
end = std::chrono::steady_clock::now();
std::cout << "Time replace: "
<< std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count()
<< " ms\n";*/
std::cout << "\n\n"
<< (int)vase.root->height << " append:" << (int)vase.append.current_offset;
std::cout << "Press Enter to continue...";
std::cin.get();
/*ChunkIterator it2(vase.root);
const char *data;
uint32_t length;
while (it2.next(&data, &length))
std::cout << std::string(data, length);*/
// std::cout << vase.to_string();
return 0;
}