Skip to content
Snippets Groups Projects
header_include.py 1005 B
Newer Older
from __future__ import annotations

class SfgHeaderInclude:
    def __init__(self, header_file: str, system_header : bool = False, private: bool = False):
        self._header_file = header_file
        self._system_header = system_header
        self._private = private

    @property
    def system_header(self):
        return self._system_header
    
    @property
    def private(self):
        return self._private

    def get_code(self):
        if self._system_header:
            return f"#include <{self._header_file}>"
        else:
            return f'#include "{self._header_file}"'
        
    def __hash__(self) -> int:
        return hash((self._header_file, self._system_header, self._private))
    
    def __eq__(self, other: SfgHeaderInclude) -> bool:
        return (isinstance(other, SfgHeaderInclude) 
                and self._header_file == other._header_file
                and self._system_header == other._system_header
                and self._private == other._private)