Skip to main content

_cef_response_filter_t

Struct _cef_response_filter_t 

Source
#[repr(C)]
pub struct _cef_response_filter_t { pub base: cef_base_ref_counted_t, pub init_filter: Option<unsafe extern "C" fn(self_: *mut _cef_response_filter_t) -> c_int>, pub filter: Option<unsafe extern "C" fn(self_: *mut _cef_response_filter_t, data_in: *mut c_void, data_in_size: usize, data_in_read: *mut usize, data_out: *mut c_void, data_out_size: usize, data_out_written: *mut usize) -> cef_response_filter_status_t>, }
Expand description

Implement this structure to filter resource response content. The functions of this structure will be called on the browser process IO thread.

NOTE: This struct is allocated client-side.

Fields§

§base: cef_base_ref_counted_t

Base structure.

§init_filter: Option<unsafe extern "C" fn(self_: *mut _cef_response_filter_t) -> c_int>

Initialize the response filter. Will only be called a single time. The filter will not be installed if this function returns false (0).

§filter: Option<unsafe extern "C" fn(self_: *mut _cef_response_filter_t, data_in: *mut c_void, data_in_size: usize, data_in_read: *mut usize, data_out: *mut c_void, data_out_size: usize, data_out_written: *mut usize) -> cef_response_filter_status_t>

Called to filter a chunk of data. Expected usage is as follows:

  1. Read input data from |data_in| and set |data_in_read| to the number of bytes that were read up to a maximum of |data_in_size|. |data_in| will be NULL if |data_in_size| is zero.
  2. Write filtered output data to |data_out| and set |data_out_written| to the number of bytes that were written up to a maximum of |data_out_size|. If no output data was written then all data must be read from |data_in| (user must set |data_in_read| = |data_in_size|).
  3. Return RESPONSE_FILTER_DONE if all output data was written or RESPONSE_FILTER_NEED_MORE_DATA if output data is still pending.

This function will be called repeatedly until the input buffer has been fully read (user sets |data_in_read| = |data_in_size|) and there is no more input data to filter (the resource response is complete). This function may then be called an additional time with an NULL input buffer if the user filled the output buffer (set |data_out_written| = |data_out_size|) and returned RESPONSE_FILTER_NEED_MORE_DATA to indicate that output data is still pending.

Calls to this function will stop when one of the following conditions is met:

  1. There is no more input data to filter (the resource response is complete) and the user sets |data_out_written| = 0 or returns RESPONSE_FILTER_DONE to indicate that all data has been written, or;
  2. The user returns RESPONSE_FILTER_ERROR to indicate an error.

Do not keep a reference to the buffers passed to this function.

Trait Implementations§

Source§

impl Clone for _cef_response_filter_t

Source§

fn clone(&self) -> _cef_response_filter_t

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for _cef_response_filter_t

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Copy for _cef_response_filter_t

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.