/*
     Description: 碱基相关的工具函数

     Copyright : All right reserved by ICT

     Author : Zhang Zhonghai
     Date : 2025/12/29
*/
#pragma once

struct BaseUtils {
    // uint8_t转碱基字符
    static const char cBaseToChar[16];

    // 该操作符是否消耗read的碱基
    static bool consumeReadBases(char cigar) { return cigar == 'M' || cigar == '=' || cigar == 'X' || cigar == 'I' || cigar == 'S'; }

    // 该操作符是否消耗参考基因组的碱基
    static bool consumeRefBases(char cigar) { return cigar == 'M' || cigar == '=' || cigar == 'X' || cigar == 'D' || cigar == 'N'; }
};