Crate openzl_sys

Crate openzl_sys 

Source
Expand description

§openzl-sys

Raw Rust bindings to OpenZL (https://github.com/facebook/openzl), a novel data compression framework.

§Bindings

This library includes a pre-generated bindings.rs file for openzl.h. New bindings can be generated using the bindgen feature:

cargo build --features bindgen

§Licence

openzl-sys is licensed under either of

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Structs§

ZL_CCtx_s
ZL_CodecInfo_s
ZL_CodecStateManager
ZL_CompressIntrospectionHooks_s
ZL_CompressorDeserializer_Dependencies
Doesn’t own any memory.
ZL_CompressorDeserializer_s
ZL_CompressorSerializer_s
ZL_Compressor_s
ZL_CopyParam
ZL_CustomTokenizeState_s
ZL_DCtx_s
ZL_DataID
ZL_DataInfo_s
ZL_Data_s
ZL_Decoder_s
ZL_DispatchInstructions
ZL_DispatchState_s
ZL_DynamicErrorInfo_s
ZL_EdgeList
ZL_Edge_s
ZL_Encoder_s
ZL_ErrorContext
ZL_Error_Array
ZL_Error_Array: a const view into an array of errors, returned by some public APIs.
ZL_Error_s
ZL_Error:
ZL_FrameInfo
ZL_FunctionGraphDesc
ZL_GraphContext
ZL_GraphID
ZL_GraphIDList
ZL_GraphParameters_s
@defgroup Group_Compressor_GraphCustomization Graph Customization
ZL_GraphPerformance
A measurement of graph performance. Currently this is compressed size, but it is expected to be expanded to include speed.
ZL_GraphReport
ZL_Graph_s
ZL_Input_s
ZL_IntMetadata
ZL_IntParam
ZL_LocalCopyParams
ZL_LocalIntParams
ZL_LocalParams
ZL_LocalRefParams
ZL_MIDecoderDesc
ZL_MIEncoderDesc
ZL_MIGraphDesc
ZL_NodeID
ZL_NodeIDList
ZL_NodeParameters
@defgroup Group_Compressor_NodeCustomization Node Customization
ZL_OpaquePtr
ZL_OperationContext_s
ZL_OutputInfo
@brief Information about a decompressed typed output.
ZL_Output_s
ZL_ParameterizedGraphDesc
This creates a new Graphs, based on an existing Graph, but modifying all or parts of its exposed parameters.
ZL_ParameterizedNodeDesc
ZL_PipeDecoderDesc
ZL_PipeEncoderDesc
ZL_RBuffer
ZL_RefParam
ZL_ReflectionCtx_s
ZL_Result_ZL_CompressorDeserializer_Dependencies_inner
ZL_Result_ZL_EdgeList_inner
ZL_Result_ZL_GraphID_inner
ZL_Result_ZL_GraphPerformance_inner
ZL_Result_ZL_NodeID_inner
ZL_Result_size_t_inner
ZL_SelectorDesc
ZL_Selector_s
ZL_SerialSelectorDesc
ZL_SetStringLensInstructions
ZL_SetStringLensState_s
ZL_SplitDecoderDesc
ZL_SplitEncoderDesc
ZL_SplitInstructions
ZL_SplitState_s
ZL_StaticErrorInfo_s
ZL_StaticErrorInfo *
ZL_StaticGraphDesc
ZL_StaticGraphParameters
@defgroup Group_Compressor_StaticGraphCreation Static Graph Creation
ZL_TypedDecoderDesc
ZL_TypedEncoderDesc
ZL_TypedGraphDesc
ZL_VODecoderDesc
ZL_VOEncoderDesc
ZL_VOGraphDesc
ZL_WBuffer
ZL_WCursor

Constants§

ZL_ALLOW_INTROSPECTION
ZL_Bitunpack_numBits
ZL_CHUNK_VERSION_MIN
ZL_COMPRESSIONLEVEL_DEFAULT
ZL_CONVERT_SERIAL_TO_STRUCT_SIZE_PID
ZL_CParam_compressedChecksum
Enable checksum of the compressed frame. This is useful to check for corruption that happens after compression. Valid values for this parameter use the ZS2_cv3_* format. @default 0 currently means checksum, might change in the future.
ZL_CParam_compressionLevel
Scale amplitude to determine
ZL_CParam_contentChecksum
Enable checksum of the uncompressed content contained in the frame. This is useful to check for corruption that happens after compression, or corruption introduced during (de)compression. However, it cannot distinguish the two alone. In order to determine whether it is corruption or a bug in the ZStrong library, you have to enable both compressed and content checksums. Valid values for this parameter use the ZS2_cv3_* format. @default 0 currently means checksum, might change in the future.
ZL_CParam_decompressionLevel
Scale amplitude to determine
ZL_CParam_formatVersion
Sets the format version number to use for encoding. See @ZL_getDefaultEncodingVersion for details. @default 0 means use format version ZL_getDefaultEncodingVersion().
ZL_CParam_minStreamSize
Any time an internal data Stream becomes smaller than this size, it gets STORED immediately, without further processing. This reduces processing time, improves decompression speed, and reduce risks of data expansion. Note(@Cyan): follows convention that setting 0 means “default”, aka ZL_MINSTREAMSIZE_DEFAULT. Therefore, in order to completely disable the “automatic store” feature, one must pass a negative threshold value.
ZL_CParam_permissiveCompression
Select behavior when an internal compression stage fails. For example, when expecting an array of 32-bit integers, but the input size is not a clean multiple of 4. Strict mode stops at such stage and outputs an error. Permissive mode engages a generic backup compression mechanism, to successfully complete compression, at the cost of efficiency. At the time of this writing, backup is ZL_GRAPH_COMPRESS_GENERIC. Valid values for this parameter use the ZS2_cv3_* format. @default 0 currently means strict mode. This may change in the future.
ZL_CParam_stickyParameters
Only meaningful at CCtx level (ignored at CGraph level) By default, parameters are reset between compression sessions setting this parameter to 1 keep the parameters across compression sessions.
ZL_DECOMPRESSIONLEVEL_DEFAULT
ZL_DISPATCH_CHANNEL_ID
ZL_DISPATCH_INSTRUCTIONS_PID
ZL_DISPATCH_PARSINGFN_PID
ZL_DISPATCH_STRING_INDICES_PID
ZL_DISPATCH_STRING_NUM_OUTPUTS_PID
ZL_DIVIDE_BY_PID
ZL_DParam_checkCompressedChecksum
@brief Enable checking the checksum of the compressed frame.
ZL_DParam_checkContentChecksum
@brief Enable checking the checksum of the uncompressed content.
ZL_DParam_stickyParameters
@brief Keep parameters across decompression sessions.
ZL_DataArenaType_heap
ZL_DataArenaType_stack
ZL_ENABLE_ERR_IF_ARG_PRINTING
ZL_ENABLE_RET_IF_ARG_PRINTING
ZL_ERROR_ENABLE_STATIC_ERROR_INFO
ZL_ErrorCode_GENERIC
ZL_ErrorCode_GENERIC__desc_str
ZL_ErrorCode_allocation
ZL_ErrorCode_allocation__desc_str
ZL_ErrorCode_compressedChecksumWrong
ZL_ErrorCode_compressedChecksumWrong__desc_str
ZL_ErrorCode_compressionParameter_invalid
ZL_ErrorCode_compressionParameter_invalid__desc_str
ZL_ErrorCode_contentChecksumWrong
ZL_ErrorCode_contentChecksumWrong__desc_str
ZL_ErrorCode_corruption
ZL_ErrorCode_corruption__desc_str
ZL_ErrorCode_customNode_definitionInvalid
ZL_ErrorCode_customNode_definitionInvalid__desc_str
ZL_ErrorCode_decompression_incorrectAPI
ZL_ErrorCode_decompression_incorrectAPI__desc_str
ZL_ErrorCode_dstCapacity_tooSmall
ZL_ErrorCode_dstCapacity_tooSmall__desc_str
ZL_ErrorCode_formatVersion_notSet
ZL_ErrorCode_formatVersion_notSet__desc_str
ZL_ErrorCode_formatVersion_unsupported
ZL_ErrorCode_formatVersion_unsupported__desc_str
ZL_ErrorCode_frameParameter_unsupported
ZL_ErrorCode_frameParameter_unsupported__desc_str
ZL_ErrorCode_graphParameter_invalid
ZL_ErrorCode_graphParameter_invalid__desc_str
ZL_ErrorCode_graph_invalid
ZL_ErrorCode_graph_invalidNumInputs
ZL_ErrorCode_graph_invalidNumInputs__desc_str
ZL_ErrorCode_graph_invalid__desc_str
ZL_ErrorCode_graph_nonserializable
ZL_ErrorCode_graph_nonserializable__desc_str
ZL_ErrorCode_header_unknown
ZL_ErrorCode_header_unknown__desc_str
ZL_ErrorCode_inputType_unsupported
ZL_ErrorCode_inputType_unsupported__desc_str
ZL_ErrorCode_integerOverflow
ZL_ErrorCode_integerOverflow__desc_str
ZL_ErrorCode_internalBuffer_tooSmall
ZL_ErrorCode_internalBuffer_tooSmall__desc_str
ZL_ErrorCode_invalidName
ZL_ErrorCode_invalidName__desc_str
ZL_ErrorCode_invalidRequest_singleOutputFrameOnly
ZL_ErrorCode_invalidRequest_singleOutputFrameOnly__desc_str
ZL_ErrorCode_invalidTransform
ZL_ErrorCode_invalidTransform__desc_str
ZL_ErrorCode_logicError
ZL_ErrorCode_logicError__desc_str
ZL_ErrorCode_maxCode
ZL_ErrorCode_no_error
ZL_ErrorCode_no_error__desc_str
ZL_ErrorCode_nodeExecution_invalidOutputs
ZL_ErrorCode_nodeExecution_invalidOutputs__desc_str
ZL_ErrorCode_nodeParameter_invalid
ZL_ErrorCode_nodeParameter_invalidValue
ZL_ErrorCode_nodeParameter_invalidValue__desc_str
ZL_ErrorCode_nodeParameter_invalid__desc_str
ZL_ErrorCode_nodeRegen_countIncorrect
ZL_ErrorCode_nodeRegen_countIncorrect__desc_str
ZL_ErrorCode_node_invalid
ZL_ErrorCode_node_invalid__desc_str
ZL_ErrorCode_node_invalid_input
ZL_ErrorCode_node_invalid_input__desc_str
ZL_ErrorCode_node_unexpected_input_type
ZL_ErrorCode_node_unexpected_input_type__desc_str
ZL_ErrorCode_node_versionMismatch
ZL_ErrorCode_node_versionMismatch__desc_str
ZL_ErrorCode_outputID_invalid
ZL_ErrorCode_outputID_invalid__desc_str
ZL_ErrorCode_outputNotCommitted
ZL_ErrorCode_outputNotCommitted__desc_str
ZL_ErrorCode_outputNotReserved
ZL_ErrorCode_outputNotReserved__desc_str
ZL_ErrorCode_outputs_tooNumerous
ZL_ErrorCode_outputs_tooNumerous__desc_str
ZL_ErrorCode_parameter_invalid
ZL_ErrorCode_parameter_invalid__desc_str
ZL_ErrorCode_segmenter_inputNotConsumed
ZL_ErrorCode_segmenter_inputNotConsumed__desc_str
ZL_ErrorCode_srcSize_tooLarge
ZL_ErrorCode_srcSize_tooLarge__desc_str
ZL_ErrorCode_srcSize_tooSmall
ZL_ErrorCode_srcSize_tooSmall__desc_str
ZL_ErrorCode_streamCapacity_tooSmall
ZL_ErrorCode_streamCapacity_tooSmall__desc_str
ZL_ErrorCode_streamParameter_invalid
ZL_ErrorCode_streamParameter_invalid__desc_str
ZL_ErrorCode_streamType_incorrect
ZL_ErrorCode_streamType_incorrect__desc_str
ZL_ErrorCode_stream_wrongInit
ZL_ErrorCode_stream_wrongInit__desc_str
ZL_ErrorCode_successor_alreadySet
ZL_ErrorCode_successor_alreadySet__desc_str
ZL_ErrorCode_successor_invalid
ZL_ErrorCode_successor_invalidNumInputs
ZL_ErrorCode_successor_invalidNumInputs__desc_str
ZL_ErrorCode_successor_invalid__desc_str
ZL_ErrorCode_temporaryLibraryLimitation
ZL_ErrorCode_temporaryLibraryLimitation__desc_str
ZL_ErrorCode_transform_executionFailure
ZL_ErrorCode_transform_executionFailure__desc_str
ZL_ErrorCode_userBuffer_alignmentIncorrect
ZL_ErrorCode_userBuffer_alignmentIncorrect__desc_str
ZL_ErrorCode_userBuffers_invalidNum
ZL_ErrorCode_userBuffers_invalidNum__desc_str
ZL_FBCODE_IS_RELEASE
ZL_FIELD_LZ_COMPRESSION_LEVEL_OVERRIDE_PID
ZL_FIELD_LZ_EXTRA_LITERAL_LENGTHS_GRAPH_OVERRIDE_INDEX_PID
ZL_FIELD_LZ_EXTRA_MATCH_LENGTHS_GRAPH_OVERRIDE_INDEX_PID
ZL_FIELD_LZ_LITERALS_GRAPH_OVERRIDE_INDEX_PID
ZL_FIELD_LZ_OFFSETS_GRAPH_OVERRIDE_INDEX_PID
ZL_FIELD_LZ_TOKENS_GRAPH_OVERRIDE_INDEX_PID
ZL_GraphType_function
ZL_GraphType_multiInput
ZL_GraphType_parameterized
ZL_GraphType_segmenter
ZL_GraphType_selector
ZL_GraphType_standard
ZL_GraphType_static
ZL_HAVE_FBCODE
ZL_HAVE_X86_64_ASM
ZL_LIBRARY_VERSION_MAJOR
ZL_LIBRARY_VERSION_MINOR
ZL_LIBRARY_VERSION_NUMBER
ZL_LIBRARY_VERSION_PATCH
ZL_LP_INVALID_PARAMID
ZL_MAX_FORMAT_VERSION
ZL_MINSTREAMSIZE_DEFAULT
ZL_MIN_FORMAT_VERSION
ZL_SDDL_DESCRIPTION_PID
ZL_SPLIT_CHANNEL_ID
ZL_StandardGraphID_bitpack
ZL_StandardGraphID_clustering
ZL_StandardGraphID_compress_generic
ZL_StandardGraphID_constant
ZL_StandardGraphID_entropy
ZL_StandardGraphID_field_lz
ZL_StandardGraphID_flatpack
ZL_StandardGraphID_fse
ZL_StandardGraphID_huffman
ZL_StandardGraphID_illegal
ZL_StandardGraphID_public_end
ZL_StandardGraphID_select_generic_lz_backend
ZL_StandardGraphID_select_numeric
ZL_StandardGraphID_simple_data_description_language
ZL_StandardGraphID_store
ZL_StandardGraphID_try_parse_int
ZL_StandardGraphID_zstd
ZL_StandardNodeID_bfloat16_deconstruct
ZL_StandardNodeID_bitunpack
ZL_StandardNodeID_concat_num
ZL_StandardNodeID_concat_serial
ZL_StandardNodeID_concat_string
ZL_StandardNodeID_concat_struct
ZL_StandardNodeID_convert_num_to_serial_le
ZL_StandardNodeID_convert_num_to_struct_le
ZL_StandardNodeID_convert_serial_to_num8
ZL_StandardNodeID_convert_serial_to_num_be16
ZL_StandardNodeID_convert_serial_to_num_be32
ZL_StandardNodeID_convert_serial_to_num_be64
ZL_StandardNodeID_convert_serial_to_num_le16
ZL_StandardNodeID_convert_serial_to_num_le32
ZL_StandardNodeID_convert_serial_to_num_le64
ZL_StandardNodeID_convert_serial_to_struct
ZL_StandardNodeID_convert_serial_to_struct2
ZL_StandardNodeID_convert_serial_to_struct4
ZL_StandardNodeID_convert_serial_to_struct8
ZL_StandardNodeID_convert_struct_to_num_be
ZL_StandardNodeID_convert_struct_to_num_le
ZL_StandardNodeID_convert_struct_to_serial
ZL_StandardNodeID_dedup_num
ZL_StandardNodeID_delta_int
ZL_StandardNodeID_dispatchN_byTag
ZL_StandardNodeID_dispatch_string
ZL_StandardNodeID_divide_by
ZL_StandardNodeID_field_lz
ZL_StandardNodeID_float16_deconstruct
ZL_StandardNodeID_float32_deconstruct
ZL_StandardNodeID_illegal
ZL_StandardNodeID_interleave_string
ZL_StandardNodeID_merge_sorted
ZL_StandardNodeID_parse_int
ZL_StandardNodeID_prefix
ZL_StandardNodeID_public_end
ZL_StandardNodeID_quantize_lengths
ZL_StandardNodeID_quantize_offsets
ZL_StandardNodeID_range_pack
ZL_StandardNodeID_separate_string_components
ZL_StandardNodeID_tokenize_numeric
ZL_StandardNodeID_tokenize_string
ZL_StandardNodeID_tokenize_struct
ZL_StandardNodeID_transpose_split
ZL_StandardNodeID_zigzag
ZL_TOKENIZE_SORT_PID
ZL_TYPED_INPUT_VERSION_MIN
ZL_TernaryParam_auto
ZL_TernaryParam_disable
ZL_TernaryParam_enable
ZL_Type_numeric
ZL_Type_serial
ZL_Type_string
ZL_Type_struct
ZL_trlip_tokenSize

Functions§

ZL_CCtx_attachIntrospectionHooks
@brief Attach introspection hooks to the CCtx.
ZL_CCtx_compress
@brief A one-shot (blocking) compression function.
ZL_CCtx_compressMultiTypedRef
Compresses multiple typed inputs , presented as an array of ZL_TypedRef. See below for TypedRef* object creation.
ZL_CCtx_compressTypedRef
Compresses a single typed input presented as a ZL_TypedRef. See below for TypedRef* object creation.
ZL_CCtx_create
ZL_CCtx_detachAllIntrospectionHooks
Detach any introspection hooks currently attached to the CCtx.
ZL_CCtx_free
ZL_CCtx_getErrorContextString
Gets the error context for a given ZL_Report. This context is useful for debugging and for submitting bug reports to Zstrong developers.
ZL_CCtx_getErrorContextString_fromError
See ZL_CCtx_getErrorContextString()
ZL_CCtx_getOperationContext
ZL_CCtx_getParameter
@brief Reads a compression parameter’s configured value from the CCtx.
ZL_CCtx_getWarnings
Gets the warnings that were encountered during the lifetime of the most recent compression operation.
ZL_CCtx_refCompressor
@brief Pass @p compressor as a ZL_Compressor* object to the compression state. Compression will start with the default Starting GraphID of @p compressor, using its default parameters provided at registration time. @note Only one compressor can be referenced at a time. Referencing a new compressor deletes previous reference. @note If a custom GraphID and parameters were previously set, invoking this method will reset them to default. @pre @p compressor must remain valid for the duration of its usage. @pre @p compressor must be already validated.
ZL_CCtx_resetParameters
@brief Resets the parameters in the cctx to a blank state.
ZL_CCtx_selectStartingGraphID
@brief Set the starting Graph of next compression, as @p graphID referenced in the provided @p compressor, optionally providing it with some runtime parameters. @pre @p compressor must remain valid for the duration of its usage. @pre @p compressor must be already validated.
ZL_CCtx_setDataArena
Sets the Arena for Data* objects in the CCtx. This frees the previous Data Arena and creates a new one. This choice remains sticky, until set again. The default Data Arena is HeapArena.
ZL_CCtx_setParameter
@brief Sets a global compression parameter via the CCtx.
ZL_CodecInfo_getCodecID
@returns The transform ID
ZL_CodecInfo_getHeaderPtr
@returns The header pointer for the transform.
ZL_CodecInfo_getHeaderSize
@returns The header size of the transform.
ZL_CodecInfo_getIndex
@returns The index for which ZL_ReflectionCtx_getCodec_lastChunk() returns this transform.
ZL_CodecInfo_getInput
@returns The input stream of the transform at index @p index @pre index is valid
ZL_CodecInfo_getName
@returns The name of the transform
ZL_CodecInfo_getNumInputs
@returns The number of input streams to the transform. Input streams are streams that are consumed by the encoder and produced by the decoder.
ZL_CodecInfo_getNumOutputs
@returns The number of output streams to the transform. Output streams are streams that are produced by the encoder and consumed by the decoder.
ZL_CodecInfo_getNumVariableOutputs
@returns The number of output streams of the transform that are variable outputs. Necessarily no greater than ZL_CodecInfo_getOutput().
ZL_CodecInfo_getOutput
@returns The output stream of the transform at index @p index @pre index is valid
ZL_CodecInfo_isCustomCodec
@returns true iff the transform is a custom transform.
ZL_CodecInfo_isStandardCodec
@returns true iff the transform is a standard transform.
ZL_CompressorDeserializer_create
Creates and initializes an opaque ZL_CompressorDeserializer object.
ZL_CompressorDeserializer_deserialize
Reads the serialized compressor represented by @p serialized and pushes the graph structure and configuration it describes into @p compressor.
ZL_CompressorDeserializer_free
Frees all the resources owned by the @p deserializer, including the @p deserializer itself.
ZL_CompressorDeserializer_getDependencies
Read the serialized compressor from @p serialized and find all of the nodes and graphs that the serialized compressor refers to but that aren’t present in the serialized compressor. I.e., lists all the components that must be present on a destination compressor in order for this serialized compressor to correctly materialize onto that destination compressor.
ZL_CompressorDeserializer_getErrorContextString
Safely retrieve the full error message associated with an error.
ZL_CompressorDeserializer_getErrorContextString_fromError
Like @ref ZL_CompressorDeserializer_getErrorContextString(), but generic across result types. Use like:
ZL_CompressorDeserializer_getOperationContext
ZL_CompressorSerializer_convertToJson
Converts an already-serialized compressor to human-readable JSON.
ZL_CompressorSerializer_create
Creates and initializes an opaque ZL_CompressorSerializer object.
ZL_CompressorSerializer_free
Frees all the resources owned by the @p serializer, including the @p serializer itself.
ZL_CompressorSerializer_getErrorContextString
Safely retrieve the full error message associated with an error.
ZL_CompressorSerializer_getErrorContextString_fromError
Like @ref ZL_CompressorSerializer_getErrorContextString(), but generic across result types. Use like:
ZL_CompressorSerializer_getOperationContext
ZL_CompressorSerializer_serialize
Returns a serialized representation of the given @p compressor.
ZL_CompressorSerializer_serializeToJson
Equivalent @ref ZL_CompressorSerializer_serialize, but produces a human- readable output for debugging. This output format cannot currently be consumed by OpenZL.
ZL_Compressor_Graph_getBaseGraphID
@returns If the provided @p graphid was created by modifying another existing graph, i.e., its type is ZL_GraphType_parameterized, the ZL_GraphID of that other graph. Otherwise, it returns ZL_GRAPH_ILLEGAL.
ZL_Compressor_Graph_getCustomGraphs
@returns The custom graphs of @p graphid, which is only non-empty for selector, dynamic, and multi-input graphs. @note The array is valid for the lifetime of the @p compressor.
ZL_Compressor_Graph_getCustomNodes
@returns The custom nodes of @p graphid, which is only non-empty for dynamic and multi-input graphs. @note The array is valid for the lifetime of the @p compressor.
ZL_Compressor_Graph_getHeadNode
@returns The head node of the graph if @p graphid is a static graph, otherwise returns ZL_NODE_ILLEGAL.
ZL_Compressor_Graph_getInput0Mask
@returns The input stream types that @p graphid is compatible with. @pre @p graph must be valid, and must have a single input stream
ZL_Compressor_Graph_getInputMask
@returns The input stream types that @p graphid input @p inputIdx is compatible with.
ZL_Compressor_Graph_getLocalParams
@returns The local params of @p graphid. @note The params for the lifetime of the @p compressor.
ZL_Compressor_Graph_getName
@returns the (optional) @p name given to this graphid. When none provided, returns “”. When graphid is illegal (invalid), returns NULL.
ZL_Compressor_Graph_getNumInputs
@returns The number of input streams that @p graphid expects.
ZL_Compressor_Graph_getSuccessors
@returns The successor of the head node in the graph if @p graphid is a static graph, otherwise returns an empty list. @note The array is valid for the lifetime of the @p compressor.
ZL_Compressor_Graph_isVariableInput
@returns True if @p graphid is a multi input graph whose last input may show up zero or more times.
ZL_Compressor_Node_getBaseNodeID
@returns If the provided @p node was created by modifying another existing node, the ZL_NodeID of that other node. Otherwise, ZL_NODE_ILLEGAL.
ZL_Compressor_Node_getCodecID
@returns The transform ID for the node, which is the ID that is written into the frame header, and how we determine which decoder to use.
ZL_Compressor_Node_getInput0Type
@returns The input stream type that @p node expects @pre @p node must be valid, and must have a single input stream
ZL_Compressor_Node_getInputType
@returns The input stream type that @p node has at index @p inputIndex in the context of the @p cgraph
ZL_Compressor_Node_getLocalParams
@returns The local params of @p nodeid. @note The params for the lifetime of the @p compressor.
ZL_Compressor_Node_getMaxVersion
@returns the max format version that @p node supports in the context of the @p cgraph.
ZL_Compressor_Node_getMinVersion
@returns the min format version that @p node supports in the context of the @p cgraph.
ZL_Compressor_Node_getName
@returns The name of the node if available, else “”, and returns NULL if @p node is invalid.
ZL_Compressor_Node_getNumInputs
@returns The number of input streams that @p node expects in the context of the @p cgraph.
ZL_Compressor_Node_getNumOutcomes
@returns The number of output outcomes that @p node has in the context of the @p cgraph.
ZL_Compressor_Node_getNumVariableOutcomes
@returns The number of variable output that @p node has in the context of the @p cgraph.
ZL_Compressor_Node_getOutputType
@returns The output stream type that @p node has at index @p outputIndex in the context of the @p cgraph
ZL_Compressor_Node_isStandard
@returns a boolean value indicating whether the node is standard or not.
ZL_Compressor_Node_isVariableInput
@returns True if @p nodeid is a multi input codec whose last input may show up zero or more times.
ZL_Compressor_buildACEGraph
Inserts a placeholder for the Automated Compressor Explorer (ACE) to replace with an automatically generated graph. It accepts a single input of any type.
ZL_Compressor_buildACEGraph2
@see ZL_Compressor_buildACEGraph
ZL_Compressor_buildACEGraphWithDefault
The same as ZL_Compressor_buildACEGraph, but uses defaultGraph to compress until it is trained.
ZL_Compressor_buildACEGraphWithDefault2
@see ZL_Compressor_buildACEGraphWithDefault
ZL_Compressor_buildSDDLGraph
Builds a Simple Data Description Language graph with the provided (pre-compiled) @p description and @p successor graph.
ZL_Compressor_buildStaticGraph
Build a new graph out of pre-existing components. The new graph passes its data to @p headNode, and then each output of @p headNode is set to the corresponding @p successorGraph.
ZL_Compressor_buildTokenizeGraph
Builds a tokenize graph for the given parameters & successors.
ZL_Compressor_cloneNode
@brief Simplified variant of @ref ZL_Compressor_registerParameterizedNode(). Clone an existing @ref ZL_NodeID from an already registered @p nodeid but employs new parameters, set via @p localParams.
ZL_Compressor_create
@brief Create a new @ref ZL_Compressor.
ZL_Compressor_forEachGraph
Calls @p callback on every graph registered in the @p compressor. If @p callback returns an error, short-circuit and return that error. @returns Success if all callbacks succeed, or the first error. @note The callback will not be called on standard graphs, since they aren’t registered in the @p compressor.
ZL_Compressor_forEachNode
Calls @p callback on every node registered in the @p compressor. If @p callback returns an error, short-circuit and return that error. @returns Success if all callbacks succeed, or the first error. @note The callback will not be called on standard nodes, since they aren’t registered in the @p compressor.
ZL_Compressor_forEachParam
Calls @p callback on every param set in the @p compressor. If @p callback returns an error, short-circuit and return that error. @returns Success if all callbacks succeed, or the first error. @note The callback will not be called on params that are equal to the default value (0).
ZL_Compressor_free
@brief Frees a @ref ZL_Compressor.
ZL_Compressor_getErrorContextString
@returns A verbose error string containing context about the error that occurred. This is useful for debugging, and for submitting bug reports to OpenZL developers. @note This string is stored within the @p compressor and is only valid for the lifetime of the @p compressor.
ZL_Compressor_getErrorContextString_fromError
See @ref ZL_Compressor_getErrorContextString()
ZL_Compressor_getGraph
@brief Lookup a graph by name.
ZL_Compressor_getGraphType
@returns The @ref ZL_GraphType of the given graph. @note This is the original type the graph was registered with.
ZL_Compressor_getNode
@brief Lookup a node by name.
ZL_Compressor_getOperationContext
ZL_Compressor_getParameter
@brief Read a parameter’s configured value in the Compressor and returns it.
ZL_Compressor_getStartingGraphID
@param[out] graphID If the function returns true, filled with the starting GraphID, otherwise filled with ZL_GRAPH_ILLEGAL. @returns True iff the compressor has the starting GraphID set.
ZL_Compressor_getWarnings
@returns The array of warnings that were encountered during the creation of the compressor. @note The array’s and the errors’ lifetimes are valid until the next non- const call on the compressor.
ZL_Compressor_initUsingGraphFn
@brief Initialize a @p compressor object with a ZL_GraphFn Graph function @p f. It will register a few custom graphs and custom nodes, and set the starting Graph ID. This is a convenience function, which is equivalent to calling the Graph function, then ZL_Compressor_selectStartingGraphID() followed by ZL_Compressor_validate() @returns Success or an error which can be checked with ZL_isError(). @param f The function used to build the ZL_GraphID.
ZL_Compressor_parameterizeConvertSerialToStructNode
Helper function to parameterize the ZL_NODE_CONVERT_SERIAL_TO_STRUCT node with the struct size.
ZL_Compressor_parameterizeGraph
Parameterizes an existing graph by overriding its name, customGraphs, customNodes, and/or localParams.
ZL_Compressor_parameterizeNode
Parameterize an existing node by overriding its name and/or local parameters.
ZL_Compressor_parameterizeTokenizeNode
Builds a tokenize node for the given parameters.
ZL_Compressor_parameterizeTryParseIntGraph
Returns a parameterized version of the try parse int graph with the required successors of the graph.
ZL_Compressor_registerBitunpackNode
ZL_Compressor_registerBruteForceSelectorGraph
Parameterized brute force selector that selects the best successor from a user-provided list of candidates. @param successors the list of successors to select from. Each successor must be equipped to handle the input stream type.
ZL_Compressor_registerConvertSerialToStringNode
ZL_Compressor_registerCustomTokenizeGraph
Tokenize with a custom tokenization function. This is useful if you want to define a custom order for your alphabet that is neither insertion nor sorted order.
ZL_Compressor_registerDispatchNode
ZL_Compressor_registerDispatchStringNode
@param nbOutputs - the number of output streams to be generated. Passed as a local param to the transform. @param dispatchIndices - the array of indices to be used for dispatching. Will be passed as a local param to the transform. The lifetime of the array is to be managed by the caller and should outlive the transform execution.
ZL_Compressor_registerDivideByNode
Creates the divide by node with its divisor set to @p divisor.
ZL_Compressor_registerFieldLZGraph
DEPRECATED: Use ZL_GRAPH_FIELD_LZ instead. @returns ZL_GRAPH_FIELD_LZ
ZL_Compressor_registerFieldLZGraph_withLevel
@returns ZL_GRAPH_FIELD_LZ with overridden compression level
ZL_Compressor_registerFieldLZGraph_withLiteralsGraph
Creates a Field LZ graph with a custom literals compressor.
ZL_Compressor_registerFunctionGraph
ZL_Compressor_registerFunctionGraph2
Registers a function graph given the @p desc.
ZL_Compressor_registerMIEncoder
ZL_Compressor_registerMIEncoder2
Register a custom encoder that can be used to compress.
ZL_Compressor_registerMergeSortedGraph
Creates a graph for ZL_NODE_MERGE_SORTED that first detects whether the input has <= 64 sorted runs. If it does it selects the node. Otherwise it selects the backupGraph.
ZL_Compressor_registerParameterizedGraph
@brief Create a new GraphID by the one from @p gid, just replacing the @p localParams by the provided ones. Used to create custom variants of Standard Graphs for example.
ZL_Compressor_registerParameterizedNode
@brief Clone an existing @ref ZL_NodeID from an existing node, but optionally with a new name & new parameters.
ZL_Compressor_registerPipeEncoder
Register a custom pipe encoder, to be employed in upcoming Graph. This registration is specialized for simple pipe transforms. Counterpart: ZL_DCtx_registerPipeDecoder(). This action creates a NodeID, provided as @return value. Graphs using custom encoders are only decodable if, at decompression time, a custom decoder of same CTid is registered.
ZL_Compressor_registerSelectorGraph
ZL_Compressor_registerSelectorGraph2
Register a selector graph given the @p desc.
ZL_Compressor_registerSerialSelectorGraph
ZL_Compressor_registerSplitByStructGraph
Split-by-struct This operation splits a serialized input defined as an array of structures of fixed size, by grouping same fields into their own stream. All fields are considered concatenated back-to-back (no alignment). For this transform to work, input must be an exact multiple of struct_size, with struct_size = sum(field_sizes). Each output stream is then assigned a successor Graph.
ZL_Compressor_registerSplitEncoder
Register a custom Split Transform
ZL_Compressor_registerSplitGraph
Split-by-param This operation splits a serialized input into segments, defined by array @segmentSizes[]. The nb of segments and their size is static, except for the last segment size, which can receive a size value 0, meaning “whatever is left in the stream”. Each segment is then into its own output, and then sent to the next processing stage defined by @successors[].
ZL_Compressor_registerSplitNode_withParams
ZL_Compressor_registerSplitNode_withParser
ZL_Compressor_registerStaticGraph
This is the more complete declaration variant, offering more control and capabilities. In order to be valid, a Static Graph Description must :
ZL_Compressor_registerStaticGraph_fromNode
@brief Create a graph from a head node.
ZL_Compressor_registerStaticGraph_fromNode1o
@brief Create a graph from a single input & output node.
ZL_Compressor_registerStaticGraph_fromPipelineNodes1o
@brief Creates a graph consisting of a series of nodes executed in succession in the order provided and then sent to @p dstGraph.
ZL_Compressor_registerTokenizeGraph
@see ZL_Compressor_buildTokenizeGraph @returns The tokenize graph, or ZL_GRAPH_ILLEGAL on error.
ZL_Compressor_registerTransposeSplitGraph
Helper function to create a graph for ZL_NODE_TRANSPOSE_SPLIT.
ZL_Compressor_registerTypedEncoder
Register a custom Typed Transform, to be employed in upcoming graph.
ZL_Compressor_registerTypedEncoder2
Register a custom encoder that can be used to compress.
ZL_Compressor_registerVOEncoder
ZL_Compressor_registerVOEncoder2
Register a custom encoder that can be used to compress.
ZL_Compressor_registerZstdGraph_withLevel
@return zstd graph with a compression level overridden
ZL_Compressor_selectStartingGraphID
@brief Selects a graph as the default entry point for the compressor.
ZL_Compressor_setParameter
@brief Set global parameters via @p compressor. In this construction, global parameters are attached to a Compressor object. Global Parameters set at Compressor level can be overridden later at CCtx level.
ZL_Compressor_validate
@brief Validates a graph maintains basic invariants to reduce the chance of errors being triggered when compressing.
ZL_CustomTokenizeState_createAlphabetOutput
Creates the alphabet stream to store the tokenized alphabet. The width of each element in the alphabet must be the same width as the input stream.
ZL_CustomTokenizeState_createIndexOutput
Creates the index stream with the given width. The index stream must contain exactly the same number of elements as the input.
ZL_CustomTokenizeState_getOpaquePtr
@returns The opaque pointer passed into @fn ZS2_createGraph_customTokenize().
ZL_DCtx_create
@brief Creates a new decompression context.
ZL_DCtx_decompress
@brief Decompresses data with explicit state management.
ZL_DCtx_decompressMultiTBuffer
@brief Decompresses a frame into multiple TypedBuffers.
ZL_DCtx_decompressTBuffer
@brief Decompresses a frame with a single typed output into a TypedBuffer.
ZL_DCtx_decompressTyped
@brief Decompresses typed content from frames with a single typed output into a pre-allocated buffer @p dst . Information about output type is written into @p outputInfo .
ZL_DCtx_free
@brief Frees a decompression context.
ZL_DCtx_getErrorContextString
@brief Gets a verbose error string containing context about the error.
ZL_DCtx_getErrorContextString_fromError
@brief Gets error context string from error code.
ZL_DCtx_getOperationContext
ZL_DCtx_getParameter
@brief Reads a parameter’s configured value in the decompression context.
ZL_DCtx_getWarnings
@brief Gets the array of warnings from the previous operation.
ZL_DCtx_registerMIDecoder
Register an MI decoder transform. Counterpart to ZS2_registerMITransform().
ZL_DCtx_registerPipeDecoder
Register a custom decoder transform, should it be needed during decompression of a zstrong frame. A decoder transform is expected to reverse the encoding transform of same @CTid. This function is specialized for the registration of simple pipe decoder transforms. Counterpart to ZL_Compressor_registerPipeEncoder().
ZL_DCtx_registerSplitDecoder
Register a custom split decoder transform. This is supposed to be the reverse of the encoding transform of same @CTid. Counterpart to ZS2_registerSplitTransform().
ZL_DCtx_registerTypedDecoder
Register a custom typed decoder transform. Counterpart to ZS2_registerTypedTransform().
ZL_DCtx_registerVODecoder
Register a variable output decoder transform. Counterpart to ZS2_registerVOTransform().
ZL_DCtx_resetParameters
@brief Resets parameters selection from a blank slate.
ZL_DCtx_setParameter
@brief Sets global parameters via the decompression context.
ZL_DCtx_setStreamArena
ZL_DataInfo_getConsumerCodec
@returns The transform that consumes this stream or NULL if the stream is an input stream to the frame.
ZL_DataInfo_getContentSize
@returns The content size of the stream. For non-string streams equal to nbElts * eltWidth. For string streams equal to the sum of the lengths.
ZL_DataInfo_getDataPtr
@returns The data pointer for the stream.
ZL_DataInfo_getEltWidth
@returns The element width of the stream.
ZL_DataInfo_getIndex
@returns The index for which ZL_ReflectionCtx_getStream_lastChunk() returns this stream.
ZL_DataInfo_getLengthsPtr
@returns The length pointer for the stream if the type is ZL_Type_string. @pre The type is ZL_Type_string.
ZL_DataInfo_getNumElts
@returns The number of elements in the stream.
ZL_DataInfo_getProducerCodec
@returns The transform that produced this stream or NULL if the stream is stored in the frame.
ZL_DataInfo_getType
@returns The type of the stream.
ZL_Data_commit
@brief Commit the number of elements written into @p data.
ZL_Data_contentSize
@return the nb of bytes committed into data’s buffer (generally == data->eltWidth * data->nbElts).
ZL_Data_eltWidth
@return element width in nb of bytes This is only valid for fixed size elements, such as ZL_Type_struct or ZL_Type_numeric. If Type is ZL_Type_string, it returns 0 instead.
ZL_Data_getIntMetadata
ZL_Data_id
ZL_Data_numElts
@note invoking ZL_Data_numElts() is only valid for committed Data. If the Data object was received as an input, it’s necessarily valid. So the issue can only happen for outputs, between allocation and commit. Querying ZL_Data_numElts() is not expected to be useful for output Data. @note ZL_Type_serial doesn’t really have a concept of “elt”. In this case, it returns Data size in bytes.
ZL_Data_rPtr
These methods provide direct access to internal buffer. Warning : users must pay attention to buffer boundaries. @return pointer to the beginning of buffer. @note for ZL_Type_string, returns a pointer to the buffer containing the concatenated strings.
ZL_Data_rStringLens
This method is only valid for ZL_Type_string Data. @return a pointer to the array of string lengths. The size of this array is == ZL_Data_numElts(data). @return NULL if incorrect data type, or StringLens not allocated yet.
ZL_Data_reserveStringLens
This method is only valid for ZL_Type_string Data. It reserves memory space for StringLens array, and returns a pointer to it. The buffer is owned by @p data and has the same lifetime. The returned pointer can be used to write into the array. After writing into the array, the nb of String Lengths provided must be signaled using @ref ZL_Data_commit(). This method will fail if StringLens is already allocated. @return NULL if incorrect data type, or allocation error.
ZL_Data_setIntMetadata
@brief Sets integer metadata with the key @p mId and value @p mvalue on the stream.
ZL_Data_type
ZL_Data_wPtr
ZL_Data_wStringLens
This method is only valid for ZL_Type_string Data. It requires write access into StringLens array. Only valid if StringLens array has already been allocated and not yet written into. @return NULL when any of the above conditions is violated.
ZL_Decoder_create1OutStream
ZL_Decoder_create1StringStream
ZL_Decoder_createStringStream
ZL_Decoder_createTypedStream
ZL_Decoder_getCodecHeader
ZL_Decoder_getOpaquePtr
@returns The opaque pointer provided in the transform description. @warning Usage of the opaque pointer must be thread-safe, and must not not modify the state in any way that impacts decoding!
ZL_Decoder_getOperationContext
ZL_Decoder_getScratchSpace
ZL_Decoder_getState
@returns Returns a state, as generated by the Transform’s State Manager.
ZL_DispatchState_getOpaquePtr
Provides an opaque pointer that can be useful to provide state to the parser. For example, it can be used by language bindings to allow parsers written in languages other than C.
ZL_DispatchState_malloc
ZL_DispatchState_returnError
@returns An error from the parser function and places the @p message into Zstrong’s error context.
ZL_DispatchString_maxDispatches
Convenience function to get the maximum number of dispatches supported by the current encoder version.
ZL_E_addFrame_public
Attempts to add more information to the error represented by @p error. Narrowly, this means trying to append a stack frame to the stacktrace that rich errors accumulate. In service of that, it also tries to up-convert the error to a rich error if it isn’t already. @p fmt and optional additional following args can also be used to append an arbitrary formatted string of information into the error.
ZL_E_appendToMessage
Append a formatted string to the error’s message. May be a no-op if the error doesn’t have a rich error info set up internally.
ZL_E_create
Actual implementation function which accepts all of the explicit arguments that are set up for you by the macros elsewhere. Prefer to use those macros rather than this function directly.
ZL_Edge_getData
ZL_Edge_getOperationContext
ZL_Edge_runConvertSerialToStringNode
ZL_Edge_runDispatchNode
Run the DispatchN node in the context of a dynamic graph, following runtime-defined @p instructions.
ZL_Edge_runDispatchStringNode
Run the ZL_NODE_DISPATCH_STRING Node in the context of a Dynamic Graph, applying runtime defined parameters.
ZL_Edge_runMultiInputNode
ZL_Edge_runMultiInputNode_withParams
ZL_Edge_runNode
ZL_Edge_runNode_withParams
ZL_Edge_runSplitNode
Run the SplitN node within the context of a dynamic graph, applying runtime-defined @p segmentSizes parameters.
ZL_Edge_runTransposeSplit
ZL_Edge_setDestination
ZL_Edge_setIntMetadata
@brief Sets the int metadata for the edge to @p mValue
ZL_Edge_setParameterizedDestination
@brief Sets the destination of the provided edges to the provided graph ID, overriding its behavior with the provided parameters.
ZL_Encoder_createAllOutBuffers
ZL_Encoder_createStringStream
ZL_Encoder_createTypedStream
ZL_Encoder_getCParam
ZL_Encoder_getLocalCopyParam
ZL_Encoder_getLocalIntParam
ZL_Encoder_getLocalIntParams
ZL_Encoder_getLocalParam
ZL_Encoder_getLocalParams
ZL_Encoder_getOpaquePtr
@returns The opaque pointer provided in the transform description. @warning Usage of the opaque pointer must be thread-safe, and must not not modify the state in any way that impacts encoding!
ZL_Encoder_getOperationContext
ZL_Encoder_getScratchSpace
ZL_Encoder_getState
@returns Returns a state, as generated by the Transform’s State Manager. The state’s lifetime is managed by the host CCtx, it will be free automatically at end of CCtx lifetime (and can’t be forcefully free manually). The state may be cached from a previous run with a compatible transform (same state signature).
ZL_Encoder_sendCodecHeader
ZL_ErrorCode_toString
ZL_ErrorContext_getOperationContext
ZL_FrameInfo_create
@brief Creates a frame information object from compressed data.
ZL_FrameInfo_free
@brief Frees a frame information object.
ZL_FrameInfo_getDecompressedSize
@brief Gets the decompressed size of a specific output.
ZL_FrameInfo_getFormatVersion
@brief Gets the format version of the frame.
ZL_FrameInfo_getNumElts
@brief Gets the number of elements in a specific output.
ZL_FrameInfo_getNumOutputs
@brief Gets the number of regenerated outputs on decompression.
ZL_FrameInfo_getOutputType
@brief Gets the output type for a specific output ID.
ZL_GraphID_isValid
Registration might fail if the Descriptor is incorrectly filled, Any further operation attempted with such a Graph will also fail. Such an outcome can be tested with ZL_GraphID_isValid(). Note: this is mostly for debugging purposes, once a Descriptor is valid, registration can be assumed to be successful.
ZL_Graph_getCParam
ZL_Graph_getCustomGraphs
ZL_Graph_getCustomNodes
ZL_Graph_getLocalIntParam
ZL_Graph_getLocalRefParam
ZL_Graph_getOpaquePtr
ZL_Graph_getOperationContext
ZL_Graph_getScratchSpace
ZL_Graph_getTransposeSplitNode
@returns a NodeID that implements transpose split for the given @p eltWidth that will work with any Zstrong format version. If no node exists, then returns ZL_NODE_ILLEGAL. This can happen for format version <= 10 when @p eltWidth != 2,4,8.
ZL_Graph_isNodeSupported
Determines whether @nodeid is supported given the applied global parameters for the compression. Notably the ZL_CParam_formatVersion parameter can determine if a node is valid for the given encoding version.
ZL_Graph_tryGraph
@brief Attempt compression using a graph and return the performance.
ZL_Graph_tryMultiInputGraph
@brief Attempt compression using a graph and return the performance.
ZL_Input_contentSize
@return the nb of bytes committed into data’s buffer (generally == data->eltWidth * data->nbElts).
ZL_Input_eltWidth
@return element width in nb of bytes This is only valid for fixed size elements, such as ZL_Type_struct or ZL_Type_numeric. If Type is ZL_Type_string, it returns 0 instead.
ZL_Input_getIntMetadata
@returns The value if present. ZL_IntMetadata::isPresent != 0 when the @p key exists, in which case ZL_IntMetadata::mValue is set to the value.
ZL_Input_id
ZL_Input_numElts
@note invoking ZL_Data_numElts() is only valid for committed Data. If the Data object was received as an input, it’s necessarily valid. So the issue can only happen for outputs, between allocation and commit. Querying ZL_Data_numElts() is not expected to be useful for output Data. @note ZL_Type_serial doesn’t really have a concept of “elt”. In this case, it returns Data size in bytes.
ZL_Input_ptr
These methods provide direct access to internal buffer. Warning : users must pay attention to buffer boundaries. @return pointer to the beginning of buffer. @note for ZL_Type_string, returns a pointer to the buffer containing the concatenated strings.
ZL_Input_setIntMetadata
@brief Sets integer metadata with the key @p key and value @p value on the stream.
ZL_Input_stringLens
This method is only valid for ZL_Type_string Data. @return a pointer to the array of string lengths. The size of this array is == ZL_Data_numElts(data). @return NULL if incorrect data type, or StringLens not allocated yet.
ZL_Input_type
ZL_NULL_getOperationContext
ZL_NodeID_isValid
Registration might fail, for example if the Descriptor is incorrectly filled. In which case, the returned nodeid is ZL_NODE_ILLEGAL. Any further operation attempted with such a Node will also fail. Such an outcome can be tested with ZL_NodeID_isValid(). Note: this is mostly for debugging, once a Descriptor is valid, registration can be assumed to remain successful.
ZL_Node_convertSerialToNumBE
Convert from serial to bitWidth-bit big-endian numeric data.
ZL_Node_convertSerialToNumLE
Convert from serial to bitWidth-bit little-endian numeric data.
ZL_Node_interpretAsLE
ZL_OperationContext_getDefaultErrorContext
ZL_Output_commit
@brief Commit the number of elements written into @p data.
ZL_Output_constPtr
@returns a const pointer to the beginning of the buffer. It returns NULL if the output does not have a buffer attached to it yet. This cannot happen within a custom codec. Warning : users must pay attention to buffer boundaries. @note for ZL_Type_string, returns a pointer to the buffer containing the concatenated strings.
ZL_Output_constStringLens
@returns A const pointer to the array containing lengths for string-typed outputs. It returns NULL if the output is not of type string.
ZL_Output_contentCapacity
@returns The capacity of the buffer reserved for @p output in bytes. If @p output has not been reserved, it returns an error. For string types, this is the sum of the lengths of each string that can be written into the buffer.
ZL_Output_contentSize
@returns The content size in bytes that has been committed to @p output. For non-string types, this is the eltWidth * numElts. For string types, this is the sum of the lengths of each stream. If @p output has not been commited, it returns an error.
ZL_Output_eltWidth
@returns The element width of the @p output if it has a buffer reserved, otherwise it returns NULL. Within a custom codec, this function always succeeds, because the output always has a buffer reserved. If the type of the output is String, it returns 0 instead.
ZL_Output_eltsCapacity
@returns The capacity of the buffer reserved for @p output in number of elements. If @p output has not been reserved, it returns an error. For string types, this is the number of strings that can be written into the buffer.
ZL_Output_getIntMetadata
@returns The value if present. ZL_IntMetadata::isPresent != 0 when the @p key exists, in which case ZL_IntMetadata::mValue is set to the value.
ZL_Output_id
ZL_Output_numElts
@returns The number of elements committed in @p output if it has been committed. Otherwise, returns an error if the write to @p output has not been committed.
ZL_Output_ptr
These methods provide direct access to internal buffer. Warning : users must pay attention to buffer boundaries. @return pointer to buffer position to resume writing. @note for ZL_Type_string, returns a pointer to the buffer containing the concatenated strings.
ZL_Output_reserveStringLens
This method is only valid for ZL_Type_string Data. It reserves memory space for StringLens array, and returns a pointer to it. The buffer is owned by @p data and has the same lifetime. The returned pointer can be used to write into the array. After writing into the array, the nb of String Lengths provided must be signaled using @ref ZL_Output_commit(). This method will fail if StringLens is already allocated. @return NULL if incorrect data type, or allocation error.
ZL_Output_setIntMetadata
@brief Sets integer metadata with the key @p key and value @p value on the stream.
ZL_Output_stringLens
This method is only valid for ZL_Type_string Data. It requests write access into StringLens array. Only valid if StringLens array has already been allocated. @return pointer to array position to resume writing. or NULL if any of above conditions is violated.
ZL_Output_type
ZL_ReflectionCtx_create
ZL_ReflectionCtx_free
ZL_ReflectionCtx_getCodec_lastChunk
@returns The transform at @p index @pre ZL_ReflectionCtx_setCompressedFrame() returned success. @pre @p index is valid.
ZL_ReflectionCtx_getDCtx
@returns The dctx that will be used for decompression so the user can set parameters and register custom transforms if the helpers provided aren’t sufficient.
ZL_ReflectionCtx_getFrameFooterSize
@returns The size of the frame footer. @pre ZL_ReflectionCtx_setCompressedFrame() returned success.
ZL_ReflectionCtx_getFrameFormatVersion
@returns The frame format version. @pre ZL_ReflectionCtx_setCompressedFrame() returned success.
ZL_ReflectionCtx_getFrameHeaderSize
@returns The size of the frame header. @pre ZL_ReflectionCtx_setCompressedFrame() returned success.
ZL_ReflectionCtx_getInput
@returns The input stream at @p index @pre ZL_ReflectionCtx_setCompressedFrame() returned success. @pre @p index is valid.
ZL_ReflectionCtx_getNumCodecs_lastChunk
@returns the number of transforms that are run during the decoding process. @pre ZL_ReflectionCtx_setCompressedFrame() returned success.
ZL_ReflectionCtx_getNumInputs
@returns The number of input streams to the compressed frame. @pre ZL_ReflectionCtx_setCompressedFrame() returned success.
ZL_ReflectionCtx_getNumStoredOutputs_lastChunk
@returns The number of streams stored in the compressed frame. @pre ZL_ReflectionCtx_setCompressedFrame() returned success.
ZL_ReflectionCtx_getNumStreams_lastChunk
@returns The total number of streams in the decoder graph. This includes streams stored in the frame, input streams to the frame, and intermediate streams. @pre ZL_ReflectionCtx_setCompressedFrame() returned success.
ZL_ReflectionCtx_getStoredOutput_lastChunk
@returns The stored stream at @p index @pre ZL_ReflectionCtx_setCompressedFrame() returned success. @pre @p index is valid.
ZL_ReflectionCtx_getStream_lastChunk
@returns The stream at @p index @pre ZL_ReflectionCtx_setCompressedFrame() returned success. @pre @p index is valid.
ZL_ReflectionCtx_getTotalTransformHeaderSize_lastChunk
@returns The total size of all the transform headers. @pre ZL_ReflectionCtx_setCompressedFrame() returned success.
ZL_ReflectionCtx_registerMIDecoder
Registers a custom transform to be used when decoding the frame. @pre Must be called before ZL_ReflectionCtx_setCompressedFrame().
ZL_ReflectionCtx_registerTypedDecoder
Registers a custom transform to be used when decoding the frame. @pre Must be called before ZL_ReflectionCtx_setCompressedFrame().
ZL_ReflectionCtx_registerVODecoder
Registers a custom transform to be used when decoding the frame. @pre Must be called before ZL_ReflectionCtx_setCompressedFrame().
ZL_ReflectionCtx_setCompressedFrame
Decompresses the frame in @p src and build all the information needed to introspect the frame.
ZL_Result_ZL_CompressorDeserializer_Dependencies_extract
ZL_Result_ZL_EdgeList_extract
ZL_Result_ZL_GraphID_extract
ZL_Result_ZL_GraphPerformance_extract
ZL_Result_ZL_NodeID_extract
ZL_Result_size_t_extract
ZL_Selector_getCParam
ZL_Selector_getInput0MaskForGraph
Utility function to get the input types supported by @gid as an input mask. Throws an error if @gid is not valid or does not have exactly one input. See ZL_Compressor_Graph_getInput0Mask() for more details.
ZL_Selector_getLocalCopyParam
ZL_Selector_getLocalIntParam
ZL_Selector_getLocalIntParams
ZL_Selector_getLocalParam
ZL_Selector_getOpaquePtr
ZL_Selector_getScratchSpace
ZL_Selector_setSuccessorParams
ZL_Selector_tryGraph
ZL_SetStringLensState_getOpaquePtr
ZL_SetStringLensState_malloc
ZL_SplitState_getOpaquePtr
Provides an opaque pointer that can be useful to provide state to the parser. For example, it can be used by language bindings to allow parsers written in languages other than C.
ZL_SplitState_malloc
ZL_TypedBuffer_byteSize
@brief Gets the number of bytes written into the internal buffer.
ZL_TypedBuffer_create
@brief Creates an empty typed buffer object.
ZL_TypedBuffer_createWrapNumeric
@brief Creates a pre-allocated typed buffer for numeric data.
ZL_TypedBuffer_createWrapSerial
@brief Creates a pre-allocated typed buffer for serial data.
ZL_TypedBuffer_createWrapString
@brief Creates a pre-allocated ZL_TypedBuffer for String data.
ZL_TypedBuffer_createWrapStruct
@brief Creates a pre-allocated typed buffer for struct data.
ZL_TypedBuffer_eltWidth
@brief Gets the size of each element for fixed-size types.
ZL_TypedBuffer_free
@brief Frees a typed buffer object.
ZL_TypedBuffer_numElts
@brief Gets the number of elements in the typed buffer.
ZL_TypedBuffer_rPtr
@brief Gets direct access to the internal buffer for reading operation.
ZL_TypedBuffer_rStringLens
@brief Gets pointer to the array of string lengths.
ZL_TypedBuffer_type
@brief Gets the type of the typed buffer.
ZL_TypedRef_createNumeric
Creates a ZL_TypedRef that references an array of numeric values, employing the local host’s endianness. Supported widths are 1, 2, 4, and 8 and the input array must be properly aligned (in local ABI).
ZL_TypedRef_createSerial
Creates a ZL_TypedRef that represents a regular buffer of bytes.
ZL_TypedRef_createString
Creates a ZL_TypedRef referencing a “flat-strings” representation. All “strings” are concatenated into @p strBuffer and their lengths are stored in a @p strLens array.
ZL_TypedRef_createStruct
Creates a ZL_TypedRef that represents a concatenated list of fields of a fixed size of @p structWidth.
ZL_TypedRef_free
Frees the given ZL_TypedRef.
ZL_codemodConstDataAsOutput
ZL_codemodConstDatasAsOutputs
ZL_codemodConstOutputAsData
ZL_codemodDataAsInput
ZL_codemodDataAsOutput
ZL_codemodDatasAsInputs
ZL_codemodInputAsData
ZL_codemodInputsAsDatas
ZL_codemodMutDataAsInput
ZL_codemodMutInputAsData
ZL_codemodOutputAsData
ZL_codemodOutputsAsDatas
ZL_compressBound
Provides the upper bound for the compressed size needed to ensure that compressing @p totalSrcSize is successful. When compressing multiple inputs, @p totalSrcSize must be the sum of the size of each input.
ZL_compress_usingCompressor
ZL_compress_usingGraphFn
@brief compresses using @param graphFunction that both defines a custom graph and sets global parameters.
ZL_decompress
@brief Decompresses a frame hosting a single serialized output.
ZL_errorCode
@returns The error code contained within the report. If !ZL_isError(report), then @returns ZL_ErrorCode_no_error.
ZL_getCompressedSize
@brief Gets the size of the compressed frame. This method could be useful when the compressed frame only represents a first portion of a larger buffer.
ZL_getDecompressedSize
@brief Gets the decompressed size of content from a single-output frame.
ZL_getDefaultEncodingVersion
@returns The current encoding version number. This version number is used when the version number is unset.
ZL_getFormatVersionFromFrame
Reads the magic number from the frame and returns the format version.
ZL_getHeaderSize
@brief Gets the size of the OpenZL header.
ZL_getNumOutputs
@brief Gets the number of outputs stored in a compressed frame.
ZL_getOutputType
@brief Gets the output type for single-output frames.
ZL_isError
@returns true iff the report contains an error
ZL_reportError
ZL_returnError
@returns a specific ZL_ErrorCode as a ZL_Report return type.
ZL_returnSuccess
@returns a successful report without a value (set to zero).
ZL_returnValue
@returns a successful report containing a value.
ZL_validResult
@pre !ZL_isError(report) @returns The value contained within the report

Type Aliases§

ZL_CCtx
ZL_CParam
The list of global compression parameters
ZL_CodecInfo
ZL_CodecStateAlloc
ZL_CodecStateFree
ZL_CompressIntrospectionHooks
ZL_Compressor
@defgroup Group_Compressor_LifetimeManagement Lifetime Management
ZL_CompressorDeserializer
ZL_CompressorSerializer
ZL_Compressor_ForEachGraphCallback
ZL_Compressor_ForEachNodeCallback
ZL_Compressor_ForEachParamCallback
ZL_CustomTokenizeFn
A custom tokenization function to tokenize the input. The output of this function is not checked in production builds, and it is UB to tokenize incorrectly.
ZL_CustomTokenizeState
ZL_DCtx
@brief Decompression context for state management (incomplete type).
ZL_DParam
@brief Global decompression parameters.
ZL_Data
ZL_DataArenaType
ZL_DataInfo
ZL_Decoder
ZL_DispatchParserFn
ZL_DispatchState
ZL_DynamicErrorInfo
Forward Declarations *
ZL_Edge
ZL_Encoder
ZL_Error
ZL_Error:
ZL_ErrorCode
ZL_ErrorCode *
ZL_ErrorInfo
Internally, there are two kinds of error info objects: dynamic and static, which are, like they sound, respectively dynamically allocated (and which must be freed) or statically allocated, but which therefore can’t contain any runtime information.
ZL_FunctionGraphFn
The function signature for function graphs.
ZL_FunctionGraphValidateFn
ZL_Graph
ZL_GraphFn
@brief While it’s possible to add elements (graphs, selectors or nodes) to a Compressor one by one, and then finalize it by selecting a starting graph ID, it’s generally common for all these steps to be regrouped into a single initialization function. The following signature corresponds such a function. It returns a GraphID which, by convention, is the starting GraphID.
ZL_GraphParameters
@defgroup Group_Compressor_GraphCustomization Graph Customization
ZL_GraphType
ZL_IDType
ZL_Input
ZL_MIDecoderFn
ZL_MIEncoderFn
ZL_OperationContext
ZL_Output
ZL_PipeDecoderFn
ZL_PipeDstCapacityFn
ZL_PipeEncoderFn
ZL_ReflectionCtx
Reflection API for introspecting a compressed frame.
ZL_Report
ZL_Result_ZL_CompressorDeserializer_Dependencies
ZL_Result_ZL_CompressorDeserializer_Dependencies_fake_type_needs_semicolon
ZL_Result_ZL_EdgeList
ZL_Result_ZL_EdgeList_fake_type_needs_semicolon
ZL_Result_ZL_GraphID
ZL_Result_ZL_GraphID_fake_type_needs_semicolon
ZL_Result_ZL_GraphPerformance
ZL_Result_ZL_GraphPerformance_fake_type_needs_semicolon
ZL_Result_ZL_NodeID
ZL_Result_ZL_NodeID_fake_type_needs_semicolon
ZL_Result_size_t
ZL_Result_size_t_fake_type_needs_semicolon
ZL_RuntimeGraphParameters
@defgroup Group_Compressor_GraphCustomization Graph Customization
ZL_Selector
ZL_SelectorFn
ZL_SerialSelectorFn
ZL_SetStringLensParserFn
ZL_SetStringLensState
ZL_SplitDecoderFn
ZL_SplitDstCapacityFn
ZL_SplitEncoderFn
ZL_SplitParserFn
ZL_SplitState
ZL_StandardGraphID
ZL_StandardNodeID
ZL_StaticErrorInfo
ZL_StaticErrorInfo *
ZL_TernaryParam
ZL_Type
Any Data object has necessary a Type. The least specific Type is ZL_Type_serial, which means it’s just a blob of bytes. Codecs can only accept and produce specified data Types. In contrast, Selectors & Graphs may optionally accept multiple data Types, using bitmap masking (example: ZL_Type_struct | ZL_Type_numeric).
ZL_TypedBuffer
@brief Typed buffer object that can own and auto-size their buffers.
ZL_TypedDecoderFn
ZL_TypedEncoderFn
ZL_TypedRef
ZL_VODecoderFn
ZL_VOEncoderFn
_bindgen_ty_1
_bindgen_ty_2

Unions§

ZL_EdgeList__bindgen_ty_1
ZL_EdgeList__bindgen_ty_2
ZL_ErrorInfo_u
Internally, there are two kinds of error info objects: dynamic and static, which are, like they sound, respectively dynamically allocated (and which must be freed) or statically allocated, but which therefore can’t contain any runtime information.
ZL_Result_ZL_CompressorDeserializer_Dependencies_u
ZL_Result_ZL_EdgeList_u
ZL_Result_ZL_GraphID_u
ZL_Result_ZL_GraphPerformance_u
ZL_Result_ZL_NodeID_u
ZL_Result_size_t_u