brewery
notashelf /
a69385c5cabdc171c73722d7935503725445ac81

nixir

public

Import-resolving Nix IR plugin

Star0tarball
clone
ssh://git@git.notashelf.dev:33/notashelf/nixir.git
src/irc/serializer.hC39 lines693 B
1
#ifndef NIX_IRC_SERIALIZER_H
2
#define NIX_IRC_SERIALIZER_H
3
4
#include "types.h"
5
#include <string>
6
#include <vector>
7
#include <fstream>
8
9
namespace nix_irc {
10
11
class Serializer {
12
public:
13
    Serializer();
14
    ~Serializer();
15
    
16
    void serialize(const IRModule& module, const std::string& path);
17
    std::vector<uint8_t> serialize_to_bytes(const IRModule& module);
18
    
19
private:
20
    struct Impl;
21
    std::unique_ptr<Impl> pImpl;
22
};
23
24
class Deserializer {
25
public:
26
    Deserializer();
27
    ~Deserializer();
28
    
29
    IRModule deserialize(const std::string& path);
30
    IRModule deserialize(const std::vector<uint8_t>& data);
31
    
32
private:
33
    struct Impl;
34
    std::unique_ptr<Impl> pImpl;
35
};
36
37
}
38
39
#endif