74 lines
1.7 KiB
Plaintext
74 lines
1.7 KiB
Plaintext
#import "Simple_Package";
|
|
#import "Basic";
|
|
#import "File";
|
|
#import "Hash_Table";
|
|
|
|
write_package :: (filename: string) {
|
|
item1 := "Hello, Sailor!";
|
|
|
|
item2: [100] u8;
|
|
for 0..item2.count-1 item2[it] = xx it;
|
|
|
|
item3: [10] float;
|
|
for 0..item3.count-1 item3[it] = cast(float)(it*it);
|
|
|
|
|
|
package: Create_Package;
|
|
defer deinit(*package);
|
|
|
|
init(*package);
|
|
|
|
add(*package, "run_tree/data/item1", xx item1);
|
|
|
|
add(*package, "this is item2", xx item2);
|
|
|
|
item3_data: [] u8;
|
|
item3_data.data = xx item3.data;
|
|
item3_data.count = item3.count * size_of(type_of(item3[0]));
|
|
add(*package, "item3, unimaginatively", item3_data);
|
|
|
|
write(*package, filename);
|
|
}
|
|
|
|
read_package :: (filename: string) -> (success: bool, package: Load_Package) {
|
|
package: Load_Package;
|
|
|
|
success := init_from_file(*package, filename);
|
|
if !success return false, package;
|
|
|
|
print("package has % entries:\n", package.entries.count);
|
|
|
|
for package.entries {
|
|
print("[%] %\n", it_index, it);
|
|
}
|
|
|
|
return true, package;
|
|
}
|
|
|
|
main :: () {
|
|
filename :: "test.package";
|
|
|
|
write_package(filename);
|
|
success, package := read_package(filename);
|
|
|
|
print("\n");
|
|
print("read_package returned success == %.\n", success);
|
|
print("\n");
|
|
|
|
if success {
|
|
found, entry := table_find_new(*package.lookup, "this is item2");
|
|
|
|
if found {
|
|
print("Found the entry!: %\n", entry.*);
|
|
} else {
|
|
print("Did not find the entry! Oops!\n");
|
|
assert(false);
|
|
}
|
|
} else {
|
|
assert(false);
|
|
}
|
|
|
|
print("\n");
|
|
}
|
|
|