summaryrefslogtreecommitdiff
path: root/source/core/slang-digest.h
blob: 47c0cd8f7a4fbe342cf7ab54414d971aedc89823 (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
32
33
34
35
#pragma once
#include "slang-md5.h"
#include "../../slang.h"

namespace Slang
{
    using slang::Digest;

    // 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);
        }

        Digest finalize()
        {
            Digest hash;
            hashGen.finalize(&context, &hash);
            return hash;
        }

    private:
        MD5HashGen hashGen;
        MD5Context context;
    };
}