Add new feature (perf-inline)

This commit is contained in:
Kogia-sima 2020-06-18 17:27:39 +09:00
parent bc4bb47082
commit dd4d31a48c
3 changed files with 8 additions and 4 deletions

View File

@ -12,6 +12,10 @@ license = "MIT"
workspace = ".."
edition = "2018"
[features]
default = ["perf-inline"]
perf-inline = []
[dependencies]
ryu = "1.0.4"

View File

@ -38,7 +38,7 @@ impl Buffer {
}
}
#[inline]
#[cfg_attr(feature = "perf-inline", inline)]
pub fn with_capacity(n: usize) -> Buffer {
unsafe {
if n == 0 {
@ -133,7 +133,7 @@ impl Buffer {
self.push_str(data.encode_utf8(&mut buf));
}
#[inline]
#[cfg_attr(feature = "perf-inline", inline)]
fn reserve_internal(&mut self, size: usize) {
unsafe {
let new_capacity = std::cmp::max(self.capacity * 2, self.len + size);
@ -142,7 +142,7 @@ impl Buffer {
}
}
#[inline]
#[cfg_attr(feature = "perf-inline", inline)]
unsafe fn realloc(&self, cap: usize) -> *mut u8 {
let data = if unlikely!(self.capacity == 0) {
let new_layout = Layout::from_size_align_unchecked(cap, 1);

View File

@ -72,7 +72,7 @@ pub unsafe fn escape(feed: &str, buffer: &mut Buffer) {
}
#[target_feature(enable = "sse2")]
#[inline]
#[cfg_attr(feature = "perf-inline", inline)]
pub unsafe fn escape_aligned(
buffer: &mut Buffer,
mut start_ptr: *const u8,