Displaying 13 results from an estimated 13 matches for "try_from".
2019 Jun 27
0
Re: [PATCH 08/11] Rust bindings: Fix memory management and format the file
...t_list<T, S: TryFrom<*const T, Error = Error>>(
+ l: *const RawList<T>,
+) -> Result<Vec<S>, Error> {
let mut v = Vec::new();
- for x in NullTerminatedIter::new(l) {
- v.push(S::from(x));
+ for x in unsafe { &*l }.iter() {
+ v.push(S::try_from(x)?);
}
- v
+ Ok(v)
}
-fn string_list (l: *const *const c_char) -> Vec<String> {
+fn string_list(l: *const *const c_char) -> Result<Vec<String>, Error> {
let mut v = Vec::new();
for x in NullTerminatedIter::new(l) {
- let s = unsafe { ffi::CStr:...
2019 Jun 27
4
Re: [PATCH 9/9] Rust bindings: Complete bindings
Patch 9 is a kind of dumping ground of all kinds of stuff. It may be
better to spend some time with git rebase -i trying to work this into
more coherent patches.
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-p2v converts physical machines to virtual machines. Boot with a
live
2019 Jun 27
0
[PATCH 9/9] Rust bindings: Complete bindings
...ruct_list<T, S: TryFrom<*const T, Error = Error>>(
+ l: *const RawList<T>,
+) -> Result<Vec<S>, Error> {
let mut v = Vec::new();
- for x in unsafe {&*l}.iter() {
- v.push(S::from(x));
+ for x in unsafe { &*l }.iter() {
+ v.push(S::try_from(x)?);
}
- v
+ Ok(v)
}
-fn string_list (l: *const *const c_char) -> Vec<String> {
+fn string_list(l: *const *const c_char) -> Result<Vec<String>, Error> {
let mut v = Vec::new();
for x in NullTerminatedIter::new(l) {
- let s = unsafe { ffi::CStr...
2019 Jul 20
0
[PATCH] Rust bindings: Add Rust bindings
...%s: i64,\n" n
+ | n, FOptPercent -> pr " %s: f32,\n" n
+ ) cols;
+ pr "}\n";
+ pr "\n";
+ pr "impl TryFrom<*const Raw%s> for %s {\n" name name;
+ pr " type Error = Error;\n";
+ pr " fn try_from(raw: *const Raw%s) -> Result<Self, Self::Error> {\n" name;
+ pr " Ok(unsafe {\n";
+ pr " %s {\n" name;
+ List.iter (
+ fun x ->
+ indent 4;
+ match x with
+ | n, FChar ->
+ pr "...
2019 Jul 23
2
Re: [PATCH] Rust bindings: Add Rust bindings
...n, FOptPercent -> pr " %s: f32,\n" n
> + ) cols;
> + pr "}\n";
> + pr "\n";
> + pr "impl TryFrom<*const Raw%s> for %s {\n" name name;
> + pr " type Error = Error;\n";
> + pr " fn try_from(raw: *const Raw%s) -> Result<Self, Self::Error>
> {\n" name;
> + pr " Ok(unsafe {\n";
> + pr " %s {\n" name;
> + List.iter (
> + fun x ->
> + indent 4;
> + match x with
> +...
2019 Jul 23
0
Re: [PATCH] Rust bindings: Add Rust bindings
...%s: i64,\n" n
+ | n, FOptPercent -> pr " %s: f32,\n" n
+ ) cols;
+ pr "}\n";
+ pr "\n";
+ pr "impl TryFrom<*const Raw%s> for %s {\n" name name;
+ pr " type Error = Error;\n";
+ pr " fn try_from(raw: *const Raw%s) -> Result<Self, Self::Error> {\n" name;
+ pr " Ok(unsafe {\n";
+ pr " %s {\n" name;
+ List.iter (
+ fun x ->
+ indent 4;
+ match x with
+ | n, FChar ->
+ pr "...
2019 Jul 20
2
Re: [PATCH] Rust bindings: Add Rust bindings
> Is this just trying if the guestfs can be linked with?
Yes. In OCaml bindings, there is the corresponding test(
https://github.com/libguestfs/libguestfs/blob/master/ocaml/t/guestfs_010_load.ml).
I just mimicked it. If it is not required, I will remove it.
divided the generated files and handmade files in rust/src/ directory. I'll
send this fixed patch to this mailing list.
I'm not
2019 Jul 08
2
Re: [PATCH] Add Rust bindings
On Mon, Jul 08, 2019 at 10:04:57AM +0100, Richard W.M. Jones wrote:
>On Mon, Jul 08, 2019 at 10:49:55AM +0200, Martin Kletzander wrote:
>> On Mon, Jul 08, 2019 at 10:10:10AM +0200, Pino Toscano wrote:
>> >On Saturday, 6 July 2019 13:03:24 CEST Martin Kletzander wrote:
>> >>Just one thing, the Cargo.toml includes a version under which the crate would be
>>
2019 Jul 29
1
Re: [PATCH] Rust bindings: Add Rust bindings
...%s: i64,\n" n
+ | n, FOptPercent -> pr " %s: f32,\n" n
+ ) cols;
+ pr "}\n";
+ pr "\n";
+ pr "impl TryFrom<*const Raw%s> for %s {\n" name name;
+ pr " type Error = Error;\n";
+ pr " fn try_from(raw: *const Raw%s) -> Result<Self, Self::Error> {\n" name;
+ pr " Ok(unsafe {\n";
+ pr " %s {\n" name;
+ List.iter (
+ fun x ->
+ indent 4;
+ match x with
+ | n, FChar ->
+ pr "...
2019 Jul 17
2
[PATCH] Rust bindings: Add Rust bindings
...ems in hash table\");
+ }
+ }
+ Ok(map)
+}
+
+fn struct_list<T, S: TryFrom<*const T, Error = Error>>(
+ l: *const RawList<T>,
+) -> Result<Vec<S>, Error> {
+ let mut v = Vec::new();
+ for x in unsafe { &*l }.iter() {
+ v.push(S::try_from(x)?);
+ }
+ Ok(v)
+}
+
+fn string_list(l: *const *const c_char) -> Result<Vec<String>, Error> {
+ let mut v = Vec::new();
+ for x in NullTerminatedIter::new(l) {
+ let s = unsafe { ffi::CStr::from_ptr(x) }.to_str()?;
+ v.push(s.to_string());
+ }
+ Ok(v...
2019 Jul 26
4
Re: [PATCH] Rust bindings: Add Rust bindings
Hi Hiroyuki,
sorry for the late reply.
Most of the work is definitely nice! There are few notes below,
although they are not big issues. I will check this patch once more
on monday, especially the rust parts.
Otherwise, I'd say that we are close to merging this :)
On Tuesday, 23 July 2019 10:37:17 CEST Hiroyuki Katsura wrote:
> From: Hiroyuki_Katsura
2019 Jul 02
16
[PATCH] Add Rust bindings
I fixed the patch I submitted before based on comments, and there are some
commits which are merged or divided. So, I will re-send all the patches.
Regards,
Hiroyuki Katsura
2019 Jun 27
16
[PATCH 1/9] Rust bindings: Add Rust bindings
From: Hiroyuki_Katsura <hiroyuki.katsura.0513@gmail.com>
---
Makefile.am | 4 ++++
configure.ac | 3 +++
generator/Makefile.am | 3 +++
generator/bindtests.ml | 3 +++
generator/bindtests.mli | 1 +
generator/main.ml | 5 +++++
generator/rust.ml | 34 ++++++++++++++++++++++++++++++++++
generator/rust.mli | 19 +++++++++++++++++++