pass application_data through as a Cstruct.t option