pub trait ToFlex<const N: usize, T> {
    fn to_flex(&self) -> FlexStr<N, T>;
}
Expand description

A trait that converts the source to a FlexStr<N, T> without consuming it

use flexstr::{FlexStr, ToFlex};

let a: FlexStr = "This is a heap allocated string!!!!!".to_string().to_flex();
assert!(a.is_heap());

Required methods

Converts the source to a FlexStr<N, T> without consuming it

Implementations on Foreign Types

use flexstr::{AFlexStr, FlexStr, ToFlex};

// *** Don't do this - use `into_flex` on literals ***
let a: AFlexStr = "inlined".to_flex();
assert!(a.is_inlined());

let b: FlexStr = "This is too long to be inlined!!!!!!".to_flex();
assert!(b.is_heap())
use flexstr::{FlexStr, ToFlex};

let s: FlexStr = false.to_flex();
assert!(s.is_static());
assert_eq!(s, "false");
use flexstr::{FlexStr, ToFlex};

let s: FlexStr = '☺'.to_flex();
assert!(s.is_inlined());
assert_eq!(s, "☺");
use flexstr::{FlexStr, ToFlex};

let s: FlexStr = 123i8.to_flex();
assert!(s.is_inlined());
assert_eq!(s, "123");
use flexstr::{FlexStr, ToFlex};

let s: FlexStr = 123u8.to_flex();
assert!(s.is_inlined());
assert_eq!(s, "123");
use flexstr::{FlexStr, ToFlex};

let s: FlexStr = 123i16.to_flex();
assert!(s.is_inlined());
assert_eq!(s, "123");
use flexstr::{FlexStr, ToFlex};

let s: FlexStr = 123u16.to_flex();
assert!(s.is_inlined());
assert_eq!(s, "123");
use flexstr::{FlexStr, ToFlex};

let s: FlexStr = 123i32.to_flex();
assert!(s.is_inlined());
assert_eq!(s, "123");
use flexstr::{FlexStr, ToFlex};

let s: FlexStr = 123u32.to_flex();
assert!(s.is_inlined());
assert_eq!(s, "123");
use flexstr::{FlexStr, ToFlex};

let s: FlexStr = 123i64.to_flex();
assert!(s.is_inlined());
assert_eq!(s, "123");
use flexstr::{FlexStr, ToFlex};

let s: FlexStr = 123u64.to_flex();
assert!(s.is_inlined());
assert_eq!(s, "123");
use flexstr::{FlexStr, ToFlex};

let s: FlexStr = 123i128.to_flex();
assert!(s.is_inlined());
assert_eq!(s, "123");
use flexstr::{FlexStr, ToFlex};

let s: FlexStr = 123u128.to_flex();
assert!(s.is_inlined());
assert_eq!(s, "123");
use flexstr::{FlexStr, ToFlex};

let s: FlexStr = 123isize.to_flex();
assert!(s.is_inlined());
assert_eq!(s, "123");
use flexstr::{FlexStr, ToFlex};

let s: FlexStr = 123usize.to_flex();
assert!(s.is_inlined());
assert_eq!(s, "123");
use flexstr::{FlexStr, ToFlex};

let s: FlexStr = 123.456f32.to_flex();
assert!(s.is_inlined());
assert_eq!(s, "123.456");
use flexstr::{FlexStr, ToFlex};

let s: FlexStr = 123.456f64.to_flex();
assert!(s.is_inlined());
assert_eq!(s, "123.456");

Implementors