feat(lib): add sasa/tanzaku get functions

This commit is contained in:
Masahiko AMANO 2022-12-23 16:22:48 +03:00
parent 177799964a
commit f8424a70ca
3 changed files with 51 additions and 4 deletions

View File

@ -56,6 +56,12 @@ int tanabata_sasa_rem_by_id(Tanabata *tanabata, uint64_t sasa_id);
// Remove sasa by file path // Remove sasa by file path
int tanabata_sasa_rem_by_path(Tanabata *tanabata, const char *path); int tanabata_sasa_rem_by_path(Tanabata *tanabata, const char *path);
// Get sasa by ID
Sasa tanabata_sasa_get_by_id(Tanabata *tanabata, uint64_t sasa_id);
// Get sasa by file path
Sasa tanabata_sasa_get_by_path(Tanabata *tanabata, const char *path);
// ==================== TANZAKU SECTION ==================== // // ==================== TANZAKU SECTION ==================== //
// Add tanzaku // Add tanzaku
@ -67,8 +73,11 @@ int tanabata_tanzaku_rem_by_id(Tanabata *tanabata, uint64_t tanzaku_id);
// Remove tanzaku by name // Remove tanzaku by name
int tanabata_tanzaku_rem_by_name(Tanabata *tanabata, const char *name); int tanabata_tanzaku_rem_by_name(Tanabata *tanabata, const char *name);
// Remove tanzaku by alias // Get tanzaku by ID
int tanabata_tanzaku_rem_by_alias(Tanabata *tanabata, const char *alias); Tanzaku tanabata_tanzaku_get_by_id(Tanabata *tanabata, uint64_t tanzaku_id);
// Get tanzaku by name
Tanzaku tanabata_tanzaku_get_by_name(Tanabata *tanabata, const char *name);
// ==================== KAZARI SECTION ==================== // // ==================== KAZARI SECTION ==================== //

View File

@ -27,3 +27,24 @@ int tanabata_sasa_rem_by_path(Tanabata *tanabata, const char *path) {
fprintf(stderr, "Failed to remove sasa: target sasa does not exist\n"); fprintf(stderr, "Failed to remove sasa: target sasa does not exist\n");
return 1; return 1;
} }
Sasa tanabata_sasa_get_by_id(Tanabata *tanabata, uint64_t sasa_id) {
if (sasa_id == HOLE_ID) {
fprintf(stderr, "Failed to get sasa: got hole ID\n");
return HOLE_SASA;
}
if (sasa_id >= tanabata->sasahyou.size) {
fprintf(stderr, "Failed to get sasa: too big ID\n");
return HOLE_SASA;
}
return tanabata->sasahyou.database[sasa_id];
}
Sasa tanabata_sasa_get_by_path(Tanabata *tanabata, const char *path) {
for (uint64_t i = 0; i < tanabata->sasahyou.size; i++) {
if (strcmp(tanabata->sasahyou.database[i].path, path) == 0) {
return tanabata->sasahyou.database[i];
}
}
return HOLE_SASA;
}

View File

@ -27,6 +27,23 @@ int tanabata_tanzaku_rem_by_name(Tanabata *tanabata, const char *name) {
return 1; return 1;
} }
int tanabata_tanzaku_rem_by_alias(Tanabata *tanabata, const char *alias) { Tanzaku tanabata_tanzaku_get_by_id(Tanabata *tanabata, uint64_t tanzaku_id) {
return tanzaku_rem_by_alias(&tanabata->sappyou, alias); if (tanzaku_id == HOLE_ID) {
fprintf(stderr, "Failed to get tanzaku: got hole ID\n");
return HOLE_TANZAKU;
}
if (tanzaku_id >= tanabata->sappyou.size) {
fprintf(stderr, "Failed to get tanzaku: too big ID\n");
return HOLE_TANZAKU;
}
return tanabata->sappyou.database[tanzaku_id];
}
Tanzaku tanabata_tanzaku_get_by_name(Tanabata *tanabata, const char *name) {
for (uint64_t i = 0; i < tanabata->sappyou.size; i++) {
if (strcmp(tanabata->sappyou.database[i].name, name) == 0) {
return tanabata->sappyou.database[i];
}
}
return HOLE_TANZAKU;
} }