libluna: Document Base64.h
This commit is contained in:
parent
24f9dd22ec
commit
1449e966ab
@ -1,13 +1,61 @@
|
|||||||
|
/**
|
||||||
|
* @file Base64.h
|
||||||
|
* @author apio (cloudapio.eu)
|
||||||
|
* @brief Base64 encoding and decoding.
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2023, the Luna authors.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
#include <luna/Buffer.h>
|
#include <luna/Buffer.h>
|
||||||
#include <luna/String.h>
|
#include <luna/String.h>
|
||||||
|
|
||||||
namespace Base64
|
namespace Base64
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @brief Encode a string into Base64.
|
||||||
|
*
|
||||||
|
* @param data The string to encode.
|
||||||
|
* @return Result<String> An error, or the resulting Base64 string.
|
||||||
|
*/
|
||||||
Result<String> encode(StringView data);
|
Result<String> encode(StringView data);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Encode a slice of data into Base64.
|
||||||
|
*
|
||||||
|
* @param data The data to encode.
|
||||||
|
* @return Result<String> An error, or the resulting Base64 string.
|
||||||
|
*/
|
||||||
Result<String> encode(Slice<const u8> data);
|
Result<String> encode(Slice<const u8> data);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Encode a buffer into Base64.
|
||||||
|
*
|
||||||
|
* @param data The buffer to encode.
|
||||||
|
* @return Result<String> An error, or the resulting Base64 string.
|
||||||
|
*/
|
||||||
Result<String> encode(const Buffer& data);
|
Result<String> encode(const Buffer& data);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Decode a Base64 string.
|
||||||
|
*
|
||||||
|
* @param data The string to decode.
|
||||||
|
* @param allow_garbage_chars Whether to skip non-Base64 characters instead of returning an error.
|
||||||
|
* @return Result<Buffer> An error, or the raw decoded data.
|
||||||
|
*/
|
||||||
Result<Buffer> decode(StringView data, bool allow_garbage_chars = false);
|
Result<Buffer> decode(StringView data, bool allow_garbage_chars = false);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Decode a Base64 string, returning a string instead of raw data.
|
||||||
|
*
|
||||||
|
* Note that decoded Base64 may be anything; invalid UTF-8, null characters in the middle of data, etc...
|
||||||
|
* For this reason it is not recommended to use this function unless you're sure that what is decoded will be a
|
||||||
|
* valid string (so, don't use this with untrusted user input).
|
||||||
|
*
|
||||||
|
* @param data The string to decode.
|
||||||
|
* @param allow_garbage_chars Whether to skip non-Base64 characters instead of returning an error.
|
||||||
|
* @return Result<String> An error, or the decoded string.
|
||||||
|
*/
|
||||||
Result<String> decode_string(StringView data, bool allow_garbage_chars = false);
|
Result<String> decode_string(StringView data, bool allow_garbage_chars = false);
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,12 @@
|
|||||||
|
/**
|
||||||
|
* @file Base64.cpp
|
||||||
|
* @author apio (cloudapio.eu)
|
||||||
|
* @brief Base64 encoding and decoding.
|
||||||
|
*
|
||||||
|
* @copyright Copyright (c) 2023, the Luna authors.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
#include <luna/Base64.h>
|
#include <luna/Base64.h>
|
||||||
#include <luna/CType.h>
|
#include <luna/CType.h>
|
||||||
#include <luna/DebugLog.h>
|
#include <luna/DebugLog.h>
|
||||||
@ -152,6 +161,6 @@ namespace Base64
|
|||||||
u8 nul_byte = '\0';
|
u8 nul_byte = '\0';
|
||||||
TRY(buf.append_data(&nul_byte, 1));
|
TRY(buf.append_data(&nul_byte, 1));
|
||||||
|
|
||||||
return String { (char*)buf.release_data() };
|
return String { (char*)buf.release_data(), buf.size() };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user