|
1 | 1 | usesuper::defines::{AfError,Backend,DType};
|
2 | 2 | usesuper::dim4::Dim4;
|
3 | 3 | usesuper::error::HANDLE_ERROR;
|
4 |
| -usesuper::util::{af_array, dim_t, void_ptr,HasAfEnum}; |
| 4 | +usesuper::util::{af_array, dim_t,free_host,void_ptr,HasAfEnum}; |
5 | 5 |
|
6 | 6 | use libc::{c_char, c_int, c_longlong, c_uint, c_void};
|
7 |
| -use std::ffi::CString; |
| 7 | +use std::ffi::{CStr,CString}; |
8 | 8 | use std::fmt;
|
9 | 9 | use std::marker::PhantomData;
|
10 | 10 |
|
@@ -139,6 +139,14 @@ extern "C" {
|
139 | 139 | fnaf_get_device_ptr(ptr:*mutvoid_ptr,arr:af_array) ->c_int;
|
140 | 140 |
|
141 | 141 | fnaf_get_allocated_bytes(result:*mutusize,arr:af_array) ->c_int;
|
| 142 | + |
| 143 | +fnaf_array_to_string( |
| 144 | +ostr:*mut*mutc_char, |
| 145 | +exp:*constc_char, |
| 146 | +arr:af_array, |
| 147 | +precision:c_int, |
| 148 | +transpose:bool, |
| 149 | +) ->c_int; |
142 | 150 | }
|
143 | 151 |
|
144 | 152 | /// A multidimensional data container
|
@@ -672,6 +680,26 @@ where
|
672 | 680 | temp
|
673 | 681 | }
|
674 | 682 | }
|
| 683 | + |
| 684 | +/// Fetch Array as String |
| 685 | +pubfnto_string(&self) ->String{ |
| 686 | +let result:String; |
| 687 | +unsafe{ |
| 688 | +let cname =CString::new("test").unwrap(); |
| 689 | +letmut tmp:*mutc_char =::std::ptr::null_mut(); |
| 690 | +let err_val =af_array_to_string( |
| 691 | +&mut tmp, |
| 692 | + cname.to_bytes_with_nul().as_ptr()as*constc_char, |
| 693 | +self.get(), |
| 694 | +4, |
| 695 | +true, |
| 696 | +); |
| 697 | +HANDLE_ERROR(AfError::from(err_val)); |
| 698 | + result =CStr::from_ptr(tmp).to_string_lossy().into_owned(); |
| 699 | +free_host(tmp); |
| 700 | +} |
| 701 | + result |
| 702 | +} |
675 | 703 | }
|
676 | 704 |
|
677 | 705 | /// Used for creating Array object from native
|
|