pub fn create_buffer<T>( context: &Context, flag: u64, size: usize, data: Option<&[T]>, ) -> Result<*mut c_void, Error>