<commit_before>#ifndef RPCRUNTIMEDECODEDPARAM_H
#define RPCRUNTIMEDECODEDPARAM_H

#include "rpcruntime_transfer.h"

/*
 * A RPCRuntimeDecodedParam represents a script-understandable parameter in an RPC-Function call
 */

class RPCRuntimeDecodedParam{
public:
	RPCRuntimeDecodedParam();
};

#endif //RPCRUNTIMEDECODEDPARAM_H<commit_msg>starting on implementing decoded parameters<commit_after>#ifndef RPCRUNTIMEDECODEDPARAM_H
#define RPCRUNTIMEDECODEDPARAM_H

#include <cinttypes>
#include <istream>
#include <utility>
#include <vector>

class RPCRuntimeParameterDescription;

/*
 * A RPCRuntimeDecodedParam represents a script-understandable parameter in an RPC-Function call
 */

class RPCRuntimeDecodedParam {
	public:
	enum class Type { integer, enumeration, structure, array };
	RPCRuntimeDecodedParam(const RPCRuntimeParameterDescription &param);
	uint64_t as_uint() const;
	int64_t as_int() const;
	std::pair<int64_t, std::string> as_enum() const;
	std::pair<uint64_t, std::string> as_uenum() const;
	std::vector<std::string, RPCRuntimeDecodedParam> as_struct() const;
	std::vector<RPCRuntimeDecodedParam> as_array() const;
private:
	const RPCRuntimeParameterDescription *param;
};

std::istream &operator>>(std::istream &is, RPCRuntimeDecodedParam &param);
std::ostream &operator<<(std::ostream &os, const RPCRuntimeDecodedParam &param);

#endif //RPCRUNTIMEDECODEDPARAM_H
{'fraction_non_alphanumeric': 0.10152284263959391, 'fraction_numerical': 0.005801305293691081, 'mean_word_length': 8.261744966442953, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 13, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3615252', 'n_tokens_mistral': 456, 'n_tokens_neox': 457, 'n_words': 100}