-
Notifications
You must be signed in to change notification settings - Fork 335
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use appropriate type cast functions #199
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for this. As much as i hate the var + "string" + var
syntax as opposed to fmt.Sprintf()
, I tested and it's faster and results in less allocations. I agree that it's a hot path so we should optimise.
Yeap, me to regarding 'var + "string" + var', also I expected that fmt.Sprintf("%v/path/%v") to be a single allocation, but for some reason fmt.Sprintf, despite it utilises memory pooling internaly, results in 2-3 |
…0.23.0 * Add iOS 15 payload additions (sideshow#185) * Add iOS 15 payload additions - Add interruption-level to payload interruption-level options: - passive - active (default if none is passed to apns) - time-sensitive - critical (requires Apple entitlement) - Add relevance-score to payload relevance-score is a number between 0 and 1 The highest score gets featured in the notification summary. * Update readme re iOS 15 features * Fix documentation typo Note that at the time of writing [Apple docs](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/generating_a_remote_notification#2943360) have a typo, showing `time-senstive` as opposed to `time-sensitive`. Testing has shown that the correct spelling `time-sensitive` does indeed work. * Update builder.go Alphabetically order keys in struct as per @Singwai suggestion. * Allow relevance-score to be set to zero. * Updated to single InterruptionLevel function Co-authored-by: Chris Haines <chris.haines@braze.com> * Go modules support (sideshow#181) * Go Modules Support * Replace Travis with Github Actions (sideshow#190) * Replace Travis with Github Actions * Fix context timeout error * Add Github workflow badge * Add coverage to actions * Update jwt library (sideshow#191) - Resolves sideshow#186 - Resolves sideshow#187 - Resolves sideshow#189 * Use NewReader instead of NewBuffer (sideshow#193) * Add location push type (sideshow#194) * Add location push type * Fix Typo * Add InvalidPushType reason error code * Use type switch with assignment syntax (sideshow#196) * Use POST http constant (sideshow#203) * Use if type conditional (sideshow#198) In that case if type is much simpler and look better. * Simplify FromPemBytes conditional (sideshow#197) - Simplify logic. strings.HasSuffix can check both for suffix and for equality * Use NewRequestWithContext instead of nil checking (sideshow#200) * Use appropriate type cast functions (sideshow#199) * Use appropriate type cast functions * avoid fmt usage * Fix double pointer (sideshow#195) * Refactor request/response variable names (sideshow#205) r *Request is more consistent with n *Notification * Feature/updated http2 transport (sideshow#209) * Update http2 transport * Add ReadIdleTimeout for ping frames * Update defaults for TCP Keepalive * Revert "CF-153: Updating Log to print issuedAt (#7)" This reverts commit 69ea756. * Revert "CF-133: Adding PushTypeLocation (#6)" This reverts commit 3668879. * Reverting Using int64 for timestamp (8fac21d) * Changing module name * gitignore idea directory --------- Co-authored-by: Neil Morton <neil@progressconcepts.com> Co-authored-by: Chris Haines <chris.haines@braze.com> Co-authored-by: jbendotnet <2698840+jbendotnet@users.noreply.github.com> Co-authored-by: Adam Jones <adam@digirati.co.nz> Co-authored-by: Mikhail Faraponov <11322032+moredure@users.noreply.github.com>
Avoid fmt.Sprintf, maybe for some business applications it's make sense, but for efficient libraries, to my mind, it's better to avoid it, especially in hot paths.