Haio 0.2.X
Homebrew Asset IO/CDN
Loading...
Searching...
No Matches
haio_pipeline.hpp File Reference
#include "haio_codec.hpp"
#include "haio_common.hpp"
#include "haio_formats.hpp"
#include "haio_object.hpp"
#include "haio_palette.hpp"
#include "haio_transform.hpp"
#include <chrono>
#include <optional>
#include <span>
#include <unordered_map>
Include dependency graph for haio_pipeline.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Haio::Token
class  Haio::Pipeline

Namespaces

namespace  Haio
namespace  Haio::Tokens

Enumerations

enum class  Haio::TokenKind {
  Haio::Source , Haio::DecodeAuto , Haio::Decode , Haio::Crop ,
  Haio::Resize , Haio::Radius , Haio::Palette , Haio::Encode
}

Functions

Token Haio::Tokens::Source (std::string bucket, std::string path)
Token Haio::Tokens::DecodeAuto ()
Token Haio::Tokens::Decode (Format format)
Token Haio::Tokens::Crop (Rect rect)
Token Haio::Tokens::Resize (Size size)
Token Haio::Tokens::ResizeByPercent (int percent)
Token Haio::Tokens::Radius (int radius)
Token Haio::Tokens::Palette (std::string palette, Dither dither, size_t limit, Limit limitHow)
Token Haio::Tokens::Encode (Format format, std::optional< Color > color=std::nullopt)
Format Haio::formatFromExtension (std::string_view path)
Format Haio::formatFromContentType (std::string_view contentType)
std::string_view Haio::extensionFor (Format format)
std::string_view Haio::contentTypeFor (Format format)
Result< Blob > Haio::runPipeline (Blob input, const Pipeline &pipeline, std::optional< std::chrono::steady_clock::time_point > deadline=std::nullopt)
std::vector< Token > Haio::parseQueryTokens (std::string_view query)
std::unordered_map< std::string, std::string > Haio::parseQueryMap (std::string_view query)

Class Documentation

◆ Haio::Token

struct Haio::Token

Definition at line 28 of file haio_pipeline.hpp.

Collaboration diagram for Haio::Token:
Class Members
string bucket
optional< Color > color

Encode only: which colour to store inside the container, when somebody named one. nothing named is not the same as rgba8888: it means the container picks, which for most of them is the only colour they write anyway.

Dither dither = Dither::Nearest
Format format = Format::RAW
TokenKind kind = TokenKind::DecodeAuto
size_t limit = 0
Limit limitHow = Limit::Spread
string palette

Palette only: which colours, how to fit into them, and how many to keep

string path
int percent = 0

Resize only: a share of the incoming picture, when the size was written as one

int radius = 0
Rect rect
Size size