summaryrefslogtreecommitdiff
path: root/source/core/slang-digest.h
blob: d1bc80b402d7fdb6ee122a347b58bd75491253a4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#pragma once
#include "slang-md5.h"
#include "../../slang.h"

namespace Slang
{
    // Wrapper struct that holds objects necessary for hashing.
    struct DigestBuilder
    {
    public:
        DigestBuilder()
        {
            hashGen.init(&context);
        }

        template <typename T>
        void addToDigest(T item)
        {
            hashGen.update(&context, item);
        }

        void finalize(slang::Digest* outHash)
        {
            hashGen.finalize(&context, outHash);
        }

    private:
        MD5HashGen hashGen;
        MD5Context context;
    };
}