try_buffer_write_at
if(!try_buffer_write_at(buffer, buffer->_position, data, count))
return try_buffer_write_at(buffer, at, str, strlen(str));