%---------------------------------------------------------------------------% % vim: ft=mercury ts=4 sw=4 et %---------------------------------------------------------------------------% :- module bug354. :- interface. :- import_module io. %---------------------------------------------------------------------------% :- typeclass surface(S) where []. %---------------------------------------------------------------------------% :- type status ---> status_success ; status_no_memory ; status_invalid_restore ; status_invalid_pop_group ; status_no_current_point ; status_invalid_matrix ; status_invalid_status ; status_null_pointer ; status_invalid_string ; status_invalid_path_data ; status_read_error ; status_write_error ; status_surface_finished ; status_surface_type_mismatch ; status_pattern_type_mismatch ; status_invalid_content ; status_invalid_format ; status_invalid_visual ; status_file_not_found ; status_invalid_dash ; status_invalid_dsc_comment ; status_invalid_index ; status_clip_not_representable ; status_temp_file_error ; status_invalid_stride ; status_font_type_mismatch ; status_user_font_immutable ; status_user_font_error ; status_negative_count ; status_invalid_clusters ; status_invalid_slant ; status_invalid_weight. :- inst bug354.surface_status ---> status_success ; status_null_pointer ; status_no_memory ; status_read_error ; status_invalid_content ; status_invalid_format ; status_invalid_visual. :- pred surface_status(S::in, status::out(surface_status), io::di, io::uo) is det <= surface(S). %---------------------------------------------------------------------------% %---------------------------------------------------------------------------% :- implementation. %---------------------------------------------------------------------------% :- pragma foreign_proc("C", surface_status(Surface::in, Status::out(surface_status), _IO0::di, _IO::uo), [promise_pure, will_not_call_mercury, tabled_for_io], " Status = cairo_surface_status( ((MCAIRO_surface *)Surface)->mcairo_raw_surface); "). %---------------------------------------------------------------------------% :- end_module bug354. %---------------------------------------------------------------------------%