Sha256: 82a47b6e0afd526f3c2f1bed4f2106b7ea92b7764709572d5ae8a1d60dec4592
Contents?: true
Size: 1.22 KB
Versions: 2
Compression:
Stored size: 1.22 KB
Contents
use ruru::{RString, Object, Class, AnyObject}; extern crate ruby_sys; use debug::RubyDebugInfo; use ruru; type MaybeString = Result<ruru::RString, ruru::result::Error>; pub trait TryFrom<T>: Sized { type Error; fn try_from(value: T) -> Result<Self, Self::Error>; } #[cfg(windows)] #[inline] pub fn is_same_path(a: &str, b: &str) -> bool { a.to_uppercase() == b.to_uppercase() } #[cfg(not(windows))] #[inline] pub fn is_same_path(a: &str, b: &str) -> bool { a == b } pub fn anyobject_to_string(item: AnyObject) -> Result<String, RubyDebugInfo> { let result = &item; if Class::from_existing("String").case_equals(result) { return Ok(RString::from(result.value()).to_string()) } if Class::from_existing("Pathname").case_equals(result) { return Ok(result.instance_variable_get("@path"). try_convert_to::<RString>(). unwrap_or(RString::new("")). to_string()) } if result.respond_to("to_path") { return Ok(RString::from(result.send("to_path", None).value()).to_string()) } Ok(RString::from(result.send("to_s", None).value()).to_string()) } pub fn to_str(maybe_string: &MaybeString) -> &str { match maybe_string { &Ok(ref ruru_string) => ruru_string.to_str(), &Err(_) => "", } }
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
faster_path-0.3.10 | src/helpers.rs |
faster_path-0.3.9 | src/helpers.rs |