Skip to content
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

Merged
merged 4 commits into from
Apr 3, 2022
Merged

Conversation

moredure
Copy link
Contributor

@moredure moredure commented Apr 2, 2022

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.

@coveralls
Copy link

coveralls commented Apr 2, 2022

Coverage Status

Coverage remained the same at 100.0% when pulling d60e4d2 on moredure:patch-5 into 7f86e1c on sideshow:master.

Copy link
Owner

@sideshow sideshow left a 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.

@sideshow sideshow merged commit f87249c into sideshow:master Apr 3, 2022
@moredure moredure deleted the patch-5 branch April 3, 2022 07:08
@moredure
Copy link
Contributor Author

moredure commented Apr 3, 2022

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

netrebel added a commit to life360/apns2 that referenced this pull request Jul 18, 2023
…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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants