# ============================================================================
# This file was autogenerated
# It is presented side to side with its source: c_style_buffer_to_pyarray_test.h
#    (see integration_tests/bindings/lg_mylib/__init__pyi which contains the full
#     stub code, including this code)
# ============================================================================

# type: ignore
import numpy as np
import numpy

# <litgen_stub> // Autogenerated code below! Do not edit!
####################    <generated_from:c_style_buffer_to_pyarray_test.h>    ####################
#
# C Style buffer to py::array tests
#
# litgen is able to recognize and transform pairs of params whose C++ signature resemble
#     (T* data, size_t|int count)
# Where
#   * `T` is a *known* numeric type, or a templated type
#   * `count` name resemble a size
#        (see LitgenOptions.fn_params_buffer_size_names__regex)
#

def add_inside_buffer(buffer: np.ndarray, number_to_add: int) -> None:
    """add_inside_buffer: modifies a buffer by adding a value to its elements
    Will be published in python as:
    -->    def add_inside_buffer(buffer: np.ndarray, number_to_add: int) -> None:
    Warning, the python function will accept only uint8 numpy arrays, and check it at runtime!
    """
    pass

def buffer_sum(buffer: np.ndarray, stride: int = -1) -> int:
    """buffer_sum: returns the sum of a *const* buffer
    Will be published in python as:
    -->    def buffer_sum(buffer: np.ndarray, stride: int = -1) -> int:
    """
    pass

def add_inside_two_buffers(
    buffer_1: np.ndarray, buffer_2: np.ndarray, number_to_add: int
) -> None:
    """add_inside_two_buffers: modifies two mutable buffers
    litgen will detect that this function uses two buffers of same size.
    Will be published in python as:
    -->    def add_inside_two_buffers(buffer_1: np.ndarray, buffer_2: np.ndarray, number_to_add: int) -> None:
    """
    pass

def templated_mul_inside_buffer(buffer: np.ndarray, factor: float) -> None:
    """templated_mul_inside_buffer: template function that modifies an array by multiplying its elements by a given factor
    litgen will detect that this function can be published as using a numpy array.
    It will be published in python as:
    -->    def mul_inside_buffer(buffer: np.ndarray, factor: float) -> None:

    The type will be detected at runtime and the correct template version will be called accordingly!
    An error will be thrown if the numpy array numeric type is not supported.
    """
    pass
####################    </generated_from:c_style_buffer_to_pyarray_test.h>    ####################

# </litgen_stub> // Autogenerated code end!
