Skip to main content

nanvm_lib/vm/string/
to_string.rs

1use super::String;
2use crate::vm::{Any, IVm, internal::IContainer};
3
4pub trait ToString {
5    fn try_to_string<A: IVm>(self) -> Result<String<A>, Any<A>>
6    where
7        Self: Sized + IntoIterator<Item = Result<u16, Any<A>>>,
8    {
9        Ok(String(A::InternalString::new((), self)?))
10    }
11    fn to_string<A: IVm>(self) -> String<A>
12    where
13        Self: Sized + IntoIterator<Item = u16>,
14    {
15        self.into_iter().map(Ok).try_to_string().unwrap()
16    }
17}
18
19impl<T> ToString for T {}