return pointer to Cursor instead of Cursor itself
This commit is contained in:
		@ -2,7 +2,7 @@ package anilist
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import "context"
 | 
					import "context"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (api *Api) GetAiringSchedule(ctx context.Context, vars AiringScheduleQuery, onError func(error)) Cursor[AiringSchedule] {
 | 
					func (api *Api) GetAiringSchedule(ctx context.Context, vars AiringScheduleQuery, onError func(error)) *Cursor[AiringSchedule] {
 | 
				
			||||||
	resp := responseObj[*page[AiringSchedule]]{}
 | 
						resp := responseObj[*page[AiringSchedule]]{}
 | 
				
			||||||
	return requestPaged(api, ctx, getAiringScheduleQuery, vars.toMap(), &resp, onError)
 | 
						return requestPaged(api, ctx, getAiringScheduleQuery, vars.toMap(), &resp, onError)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										4
									
								
								api.go
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								api.go
									
									
									
									
									
								
							@ -61,7 +61,7 @@ func request[T any](api *Api, query string, vars map[string]interface{}, respObj
 | 
				
			|||||||
	return nil
 | 
						return nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func requestPaged[R any](api *Api, ctx context.Context, query string, vars map[string]interface{}, respObj *responseObj[*page[R]], onError func(error)) Cursor[R] {
 | 
					func requestPaged[R any](api *Api, ctx context.Context, query string, vars map[string]interface{}, respObj *responseObj[*page[R]], onError func(error)) *Cursor[R] {
 | 
				
			||||||
	resp := responseObj[struct {
 | 
						resp := responseObj[struct {
 | 
				
			||||||
		Page *page[R] `json:"Page"`
 | 
							Page *page[R] `json:"Page"`
 | 
				
			||||||
	}]{}
 | 
						}]{}
 | 
				
			||||||
@ -105,7 +105,7 @@ func requestPaged[R any](api *Api, ctx context.Context, query string, vars map[s
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
	}()
 | 
						}()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return Cursor[R]{
 | 
						return &Cursor[R]{
 | 
				
			||||||
		Chan:       out,
 | 
							Chan:       out,
 | 
				
			||||||
		ctx:        ctx,
 | 
							ctx:        ctx,
 | 
				
			||||||
		cancelFunc: cancelFunc,
 | 
							cancelFunc: cancelFunc,
 | 
				
			||||||
 | 
				
			|||||||
@ -8,16 +8,16 @@ type Cursor[T any] struct {
 | 
				
			|||||||
	Chan       <-chan *T
 | 
						Chan       <-chan *T
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (c Cursor[T]) First() *T {
 | 
					func (c *Cursor[T]) First() *T {
 | 
				
			||||||
	defer c.cancelFunc()
 | 
						defer c.cancelFunc()
 | 
				
			||||||
	return <-c.Chan
 | 
						return <-c.Chan
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (c Cursor[T]) Close() {
 | 
					func (c *Cursor[T]) Close() {
 | 
				
			||||||
	c.cancelFunc()
 | 
						c.cancelFunc()
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (c Cursor[T]) Next() (*T, bool) {
 | 
					func (c *Cursor[T]) Next() (*T, bool) {
 | 
				
			||||||
	if c.ctx.Err() == nil {
 | 
						if c.ctx.Err() == nil {
 | 
				
			||||||
		value, ok := <-c.Chan
 | 
							value, ok := <-c.Chan
 | 
				
			||||||
		return value, ok
 | 
							return value, ok
 | 
				
			||||||
@ -26,7 +26,7 @@ func (c Cursor[T]) Next() (*T, bool) {
 | 
				
			|||||||
	return nil, false
 | 
						return nil, false
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (c Cursor[T]) Slice() []T {
 | 
					func (c *Cursor[T]) Slice() []T {
 | 
				
			||||||
	s := make([]T, 0)
 | 
						s := make([]T, 0)
 | 
				
			||||||
	for value, ok := c.Next(); ok; value, ok = c.Next() {
 | 
						for value, ok := c.Next(); ok; value, ok = c.Next() {
 | 
				
			||||||
		s = append(s, *value)
 | 
							s = append(s, *value)
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										2
									
								
								media.go
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								media.go
									
									
									
									
									
								
							@ -2,7 +2,7 @@ package anilist
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import "context"
 | 
					import "context"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (api *Api) GetMedia(ctx context.Context, vars MediaQuery, onError func(error)) Cursor[Media] {
 | 
					func (api *Api) GetMedia(ctx context.Context, vars MediaQuery, onError func(error)) *Cursor[Media] {
 | 
				
			||||||
	resp := responseObj[*page[Media]]{}
 | 
						resp := responseObj[*page[Media]]{}
 | 
				
			||||||
	return requestPaged(api, ctx, getMediaQuery, vars.toMap(), &resp, onError)
 | 
						return requestPaged(api, ctx, getMediaQuery, vars.toMap(), &resp, onError)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -2,7 +2,7 @@ package anilist
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import "context"
 | 
					import "context"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (api *Api) GetMediaList(ctx context.Context, vars MediaListQuery, onError func(error)) Cursor[MediaList] {
 | 
					func (api *Api) GetMediaList(ctx context.Context, vars MediaListQuery, onError func(error)) *Cursor[MediaList] {
 | 
				
			||||||
	resp := responseObj[*page[MediaList]]{}
 | 
						resp := responseObj[*page[MediaList]]{}
 | 
				
			||||||
	return requestPaged(api, ctx, getMediaListQuery, vars.toMap(), &resp, onError)
 | 
						return requestPaged(api, ctx, getMediaListQuery, vars.toMap(), &resp, onError)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										2
									
								
								user.go
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								user.go
									
									
									
									
									
								
							@ -44,7 +44,7 @@ func (api *Api) GetUserByID(id int) (*User, error) {
 | 
				
			|||||||
	return resp.Data.User, nil
 | 
						return resp.Data.User, nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (api *Api) SearchUsers(ctx context.Context, search string, onError func(error)) Cursor[User] {
 | 
					func (api *Api) SearchUsers(ctx context.Context, search string, onError func(error)) *Cursor[User] {
 | 
				
			||||||
	vars := map[string]interface{}{"search": search}
 | 
						vars := map[string]interface{}{"search": search}
 | 
				
			||||||
	resp := responseObj[*page[User]]{}
 | 
						resp := responseObj[*page[User]]{}
 | 
				
			||||||
	return requestPaged(api, ctx, searchUsersQuery, vars, &resp, onError)
 | 
						return requestPaged(api, ctx, searchUsersQuery, vars, &resp, onError)
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user