-
Notifications
You must be signed in to change notification settings - Fork 15
Add url search params #57
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
833d2cd
ac2efd0
7652e33
0cb9dd2
9b46978
bced8d0
cabde6d
f5cc3eb
2ab1c7f
3f4c21e
ab30ce9
3da7861
08ca7a8
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -13,6 +13,12 @@ pub struct ada_url { | |
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, | ||
} | ||
|
||
#[repr(C)] | ||
pub struct ada_url_search_params { | ||
_unused: [u8; 0], | ||
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, | ||
} | ||
|
||
#[repr(C)] | ||
pub struct ada_string { | ||
pub data: *const c_char, | ||
|
@@ -64,6 +70,38 @@ impl Drop for ada_owned_string { | |
} | ||
} | ||
|
||
/// Represents an std::vector<std::string> | ||
#[repr(C)] | ||
pub struct ada_strings { | ||
_unused: [u8; 0], | ||
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, | ||
} | ||
|
||
#[repr(C)] | ||
pub struct ada_url_search_params_keys_iter { | ||
_unused: [u8; 0], | ||
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, | ||
} | ||
|
||
#[repr(C)] | ||
pub struct ada_url_search_params_values_iter { | ||
_unused: [u8; 0], | ||
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, | ||
} | ||
|
||
#[repr(C)] | ||
pub struct ada_url_search_params_entries_iter { | ||
_unused: [u8; 0], | ||
_marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, | ||
} | ||
|
||
/// Represents a key/value pair of strings | ||
#[repr(C)] | ||
pub struct ada_string_pair { | ||
pub key: ada_string, | ||
pub value: ada_string, | ||
} | ||
|
||
#[repr(C)] | ||
pub struct ada_url_components { | ||
pub protocol_end: u32, | ||
|
@@ -143,6 +181,102 @@ extern "C" { | |
// IDNA methods | ||
pub fn ada_idna_to_unicode(input: *const c_char, length: usize) -> ada_owned_string; | ||
pub fn ada_idna_to_ascii(input: *const c_char, length: usize) -> ada_owned_string; | ||
|
||
// URLSearchParams | ||
pub fn ada_parse_search_params( | ||
input: *const c_char, | ||
length: usize, | ||
) -> *mut ada_url_search_params; | ||
pub fn ada_free_search_params(search_params: *mut ada_url_search_params); | ||
pub fn ada_search_params_size(search_params: *mut ada_url_search_params) -> usize; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. So, on the There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I remember reading about this. Nice catch. What's the "best" solution to use for |
||
pub fn ada_search_params_sort(search_params: *mut ada_url_search_params); | ||
pub fn ada_search_params_to_string( | ||
search_params: *mut ada_url_search_params, | ||
) -> ada_owned_string; | ||
pub fn ada_search_params_append( | ||
search_params: *mut ada_url_search_params, | ||
name: *const c_char, | ||
name_length: usize, | ||
value: *const c_char, | ||
value_length: usize, | ||
); | ||
pub fn ada_search_params_set( | ||
search_params: *mut ada_url_search_params, | ||
name: *const c_char, | ||
name_length: usize, | ||
value: *const c_char, | ||
value_length: usize, | ||
); | ||
pub fn ada_search_params_remove( | ||
search_params: *mut ada_url_search_params, | ||
name: *const c_char, | ||
name_length: usize, | ||
); | ||
pub fn ada_search_params_remove_value( | ||
search_params: *mut ada_url_search_params, | ||
name: *const c_char, | ||
name_length: usize, | ||
value: *const c_char, | ||
value_length: usize, | ||
); | ||
pub fn ada_search_params_has( | ||
search_params: *mut ada_url_search_params, | ||
name: *const c_char, | ||
name_length: usize, | ||
) -> bool; | ||
pub fn ada_search_params_has_value( | ||
search_params: *mut ada_url_search_params, | ||
name: *const c_char, | ||
name_length: usize, | ||
value: *const c_char, | ||
value_length: usize, | ||
) -> bool; | ||
pub fn ada_search_params_get( | ||
search_params: *mut ada_url_search_params, | ||
key: *const c_char, | ||
key_length: usize, | ||
) -> ada_string; | ||
pub fn ada_search_params_get_all( | ||
// not implemented | ||
search_params: *mut ada_url_search_params, | ||
key: *const c_char, | ||
key_length: usize, | ||
) -> *mut ada_strings; | ||
pub fn ada_search_params_get_keys( | ||
search_params: *mut ada_url_search_params, | ||
) -> *mut ada_url_search_params_keys_iter; | ||
pub fn ada_search_params_get_values( | ||
search_params: *mut ada_url_search_params, | ||
) -> *mut ada_url_search_params_values_iter; | ||
pub fn ada_search_params_get_entries( | ||
search_params: *mut ada_url_search_params, | ||
) -> *mut ada_url_search_params_entries_iter; | ||
|
||
pub fn ada_free_strings(strings: *mut ada_strings); | ||
pub fn ada_strings_size(strings: *mut ada_strings) -> usize; | ||
pub fn ada_strings_get(strings: *mut ada_strings, index: usize) -> ada_string; | ||
pub fn ada_free_search_params_keys_iter(iter: *mut ada_url_search_params_keys_iter); | ||
pub fn ada_search_params_keys_iter_next( | ||
iter: *mut ada_url_search_params_keys_iter, | ||
) -> ada_string; | ||
pub fn ada_search_params_keys_iter_has_next(iter: *mut ada_url_search_params_keys_iter) | ||
-> bool; | ||
|
||
pub fn ada_free_search_params_values_iter(iter: *mut ada_url_search_params_values_iter); | ||
pub fn ada_search_params_values_iter_next( | ||
iter: *mut ada_url_search_params_values_iter, | ||
) -> ada_string; | ||
pub fn ada_search_params_values_iter_has_next( | ||
iter: *mut ada_url_search_params_values_iter, | ||
) -> bool; | ||
|
||
pub fn ada_free_search_params_entries_iter(iter: *mut ada_url_search_params_entries_iter); | ||
pub fn ada_search_params_entries_iter_next( | ||
iter: *mut ada_url_search_params_entries_iter, | ||
) -> ada_string_pair; | ||
pub fn ada_search_params_entries_iter_has_next( | ||
iter: *mut ada_url_search_params_entries_iter, | ||
) -> bool; | ||
} | ||
|
||
#[cfg(test)] | ||
|
Uh oh!
There was an error while loading. Please reload this page.