summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/mailru/easyjson/benchmark/data.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/mailru/easyjson/benchmark/data.go')
-rw-r--r--vendor/github.com/mailru/easyjson/benchmark/data.go148
1 files changed, 148 insertions, 0 deletions
diff --git a/vendor/github.com/mailru/easyjson/benchmark/data.go b/vendor/github.com/mailru/easyjson/benchmark/data.go
new file mode 100644
index 000000000..71eb91a94
--- /dev/null
+++ b/vendor/github.com/mailru/easyjson/benchmark/data.go
@@ -0,0 +1,148 @@
+// Package benchmark provides a simple benchmark for easyjson against default serialization and ffjson.
+// The data example is taken from https://dev.twitter.com/rest/reference/get/search/tweets
+package benchmark
+
+import (
+ "io/ioutil"
+)
+
+var largeStructText, _ = ioutil.ReadFile("example.json")
+var xlStructData XLStruct
+
+func init() {
+ for i := 0; i < 50; i++ {
+ xlStructData.Data = append(xlStructData.Data, largeStructData)
+ }
+}
+
+var smallStructText = []byte(`{"hashtags":[{"indices":[5, 10],"text":"some-text"}],"urls":[],"user_mentions":[]}`)
+var smallStructData = Entities{
+ Hashtags: []Hashtag{{Indices: []int{5, 10}, Text: "some-text"}},
+ Urls: []*string{},
+ UserMentions: []*string{},
+}
+
+type SearchMetadata struct {
+ CompletedIn float64 `json:"completed_in"`
+ Count int `json:"count"`
+ MaxID int64 `json:"max_id"`
+ MaxIDStr string `json:"max_id_str"`
+ NextResults string `json:"next_results"`
+ Query string `json:"query"`
+ RefreshURL string `json:"refresh_url"`
+ SinceID int64 `json:"since_id"`
+ SinceIDStr string `json:"since_id_str"`
+}
+
+type Hashtag struct {
+ Indices []int `json:"indices"`
+ Text string `json:"text"`
+}
+
+//easyjson:json
+type Entities struct {
+ Hashtags []Hashtag `json:"hashtags"`
+ Urls []*string `json:"urls"`
+ UserMentions []*string `json:"user_mentions"`
+}
+
+type UserEntityDescription struct {
+ Urls []*string `json:"urls"`
+}
+
+type URL struct {
+ ExpandedURL *string `json:"expanded_url"`
+ Indices []int `json:"indices"`
+ URL string `json:"url"`
+}
+
+type UserEntityURL struct {
+ Urls []URL `json:"urls"`
+}
+
+type UserEntities struct {
+ Description UserEntityDescription `json:"description"`
+ URL UserEntityURL `json:"url"`
+}
+
+type User struct {
+ ContributorsEnabled bool `json:"contributors_enabled"`
+ CreatedAt string `json:"created_at"`
+ DefaultProfile bool `json:"default_profile"`
+ DefaultProfileImage bool `json:"default_profile_image"`
+ Description string `json:"description"`
+ Entities UserEntities `json:"entities"`
+ FavouritesCount int `json:"favourites_count"`
+ FollowRequestSent *string `json:"follow_request_sent"`
+ FollowersCount int `json:"followers_count"`
+ Following *string `json:"following"`
+ FriendsCount int `json:"friends_count"`
+ GeoEnabled bool `json:"geo_enabled"`
+ ID int `json:"id"`
+ IDStr string `json:"id_str"`
+ IsTranslator bool `json:"is_translator"`
+ Lang string `json:"lang"`
+ ListedCount int `json:"listed_count"`
+ Location string `json:"location"`
+ Name string `json:"name"`
+ Notifications *string `json:"notifications"`
+ ProfileBackgroundColor string `json:"profile_background_color"`
+ ProfileBackgroundImageURL string `json:"profile_background_image_url"`
+ ProfileBackgroundImageURLHTTPS string `json:"profile_background_image_url_https"`
+ ProfileBackgroundTile bool `json:"profile_background_tile"`
+ ProfileImageURL string `json:"profile_image_url"`
+ ProfileImageURLHTTPS string `json:"profile_image_url_https"`
+ ProfileLinkColor string `json:"profile_link_color"`
+ ProfileSidebarBorderColor string `json:"profile_sidebar_border_color"`
+ ProfileSidebarFillColor string `json:"profile_sidebar_fill_color"`
+ ProfileTextColor string `json:"profile_text_color"`
+ ProfileUseBackgroundImage bool `json:"profile_use_background_image"`
+ Protected bool `json:"protected"`
+ ScreenName string `json:"screen_name"`
+ ShowAllInlineMedia bool `json:"show_all_inline_media"`
+ StatusesCount int `json:"statuses_count"`
+ TimeZone string `json:"time_zone"`
+ URL *string `json:"url"`
+ UtcOffset int `json:"utc_offset"`
+ Verified bool `json:"verified"`
+}
+
+type StatusMetadata struct {
+ IsoLanguageCode string `json:"iso_language_code"`
+ ResultType string `json:"result_type"`
+}
+
+type Status struct {
+ Contributors *string `json:"contributors"`
+ Coordinates *string `json:"coordinates"`
+ CreatedAt string `json:"created_at"`
+ Entities Entities `json:"entities"`
+ Favorited bool `json:"favorited"`
+ Geo *string `json:"geo"`
+ ID int64 `json:"id"`
+ IDStr string `json:"id_str"`
+ InReplyToScreenName *string `json:"in_reply_to_screen_name"`
+ InReplyToStatusID *string `json:"in_reply_to_status_id"`
+ InReplyToStatusIDStr *string `json:"in_reply_to_status_id_str"`
+ InReplyToUserID *string `json:"in_reply_to_user_id"`
+ InReplyToUserIDStr *string `json:"in_reply_to_user_id_str"`
+ Metadata StatusMetadata `json:"metadata"`
+ Place *string `json:"place"`
+ RetweetCount int `json:"retweet_count"`
+ Retweeted bool `json:"retweeted"`
+ Source string `json:"source"`
+ Text string `json:"text"`
+ Truncated bool `json:"truncated"`
+ User User `json:"user"`
+}
+
+//easyjson:json
+type LargeStruct struct {
+ SearchMetadata SearchMetadata `json:"search_metadata"`
+ Statuses []Status `json:"statuses"`
+}
+
+//easyjson:json
+type XLStruct struct {
+ Data []LargeStruct
+}