Function base65536::encode [] [src]

pub fn encode<'a, T: ?Sized, W>(input: &T, wrap: W) -> String where
    T: AsRef<[u8]>,
    W: Into<WrapOptions<'a>>, 

Encode arbitrary octets as base65536.

The wrap option allows wrapping the output every so many characters, optionally with a supplied string using WrapOptions.

Unless called with ignore_garbage, decode and decode_buf will fail on output generated with a wrap. This is to match behaviour with the original implementation.

Panics

Panics if set to wrap every 0 columns.

Examples

Without word wrapping:

use base65536::encode;

assert_eq!("驨ꍬ啯𒁷ꍲᕤ", encode("hello world", None));

With word wrapping:

use base65536::encode;

assert_eq!(base65536::encode(
    "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed \
     do eiusmod tempor incididunt ut labore et dolore magna \
     aliqua. Ut enim ad minim veniam, quis nostrud exercitation \
     ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis \
     aute irure dolor in reprehenderit in voluptate velit esse \
     cillum dolore eu fugiat nulla pariatur. Excepteur sint \
     occaecat cupidatat non proident, sunt in culpa qui officia \
     deserunt mollit anim id est laborum.", 80)
    .lines().next()?.chars().count(), 80);

With word wrapping using a custom line ending:

use base65536::{WrapOptions, encode};

assert_eq!(base65536::encode(
    "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed \
     do eiusmod tempor incididunt ut labore et dolore magna \
     aliqua. Ut enim ad minim veniam, quis nostrud exercitation \
     ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis \
     aute irure dolor in reprehenderit in voluptate velit esse \
     cillum dolore eu fugiat nulla pariatur. Excepteur sint \
     occaecat cupidatat non proident, sunt in culpa qui officia \
     deserunt mollit anim id est laborum.",
    WrapOptions::WrapAtWith(80, "\r\n"))
    .lines().next()?.chars().count(), 80);