encode/decode 放到公开头文件里作为 api