pub fn translate_ferb(english: &[u8], pig_latin_string: &mut Vec<u8>)
Expand description

Translates a multi-word string (including punctuation) into Ferb Latin!

Uses the suffix and special_case_suffix “erb” and “ferb” respectively when calling translate_with_style().

Note: The resulting translation is appended to the provided buffer, so one may wish to ensure it is cleared before each use or not depending on the application.

Examples

use anslatortray::byte_string::translate_ferb;

let mut buffer = Vec::<u8>::new();

translate_ferb(b"Hello world from the coolest Pig Latin translator!", &mut buffer);
assert_eq!(&buffer, b"Elloherb orldwerb omfrerb etherb oolestcerb Igperb Atinlerb anslatortrerb!");

buffer.truncate(0);
translate_ferb(b"This library can translate any English text. It can even handle multiple sentences!", &mut buffer);
assert_eq!(&buffer, b"Istherb ibrarylerb ancerb anslatetrerb anyferb Englishferb extterb. Itferb ancerb evenferb andleherb ultiplemerb entencesserb!");

buffer.truncate(0);
translate_ferb(b"Let's try some edge cases. That is a contraction, as well as a word where the only vowel is y. Neat, all that works!", &mut buffer);
assert_eq!(&buffer, b"Etlerb's ytrerb omeserb edgeferb asescerb. Attherb isferb aferb ontractioncerb, asferb ellwerb asferb aferb ordwerb erewherb etherb onlyferb owelverb isferb yferb. Eatnerb, allferb attherb orkswerb!");

buffer.truncate(0);
translate_ferb(b"What if a word has no vowels, like this: bcdfghjklmnpqrstvwxz", &mut buffer);
assert_eq!(&buffer, b"Atwherb ifferb aferb ordwerb asherb onerb owelsverb, ikelerb istherb: bcdfghjklmnpqrstvwxzerb");

buffer.truncate(0);
translate_ferb(b"Cool, so the heuristics make pretty good guesses with what they're fed!", &mut buffer);
assert_eq!(&buffer, b"Oolcerb, oserb etherb euristicsherb akemerb ettyprerb oodgerb uessesgerb ithwerb atwherb eytherb're edferb!");

buffer.truncate(0);
translate_ferb(b"Hello-world", &mut buffer);
assert_eq!(&buffer, b"Elloherb-orldwerb");

buffer.truncate(0);
translate_ferb(b"Hyphens-are-difficult-aren't-they?", &mut buffer);
assert_eq!(&buffer, b"Yphensherb-areferb-ifficultderb-arenferb't-eytherb?");

buffer.truncate(0);
translate_ferb(b"The buffer isn't cleared by the translate function beforehand, ", &mut buffer);
translate_ferb(b"so we can do something like this if we wish!", &mut buffer);
assert_eq!(&buffer, b"Etherb ufferberb isnferb't earedclerb yberb etherb anslatetrerb unctionferb eforehandberb, oserb ewerb ancerb oderb omethingserb ikelerb istherb ifferb ewerb ishwerb!");