/* * Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package py import ( _ "unsafe" ) // https://docs.python.org/3/c-api/set.html // Return a new set containing objects returned by the iterable. The iterable // may be nil to create a new empty set. Return the new set on success or nil // on failure. set a TypeError exception if iterable is not actually iterable. // The constructor is also useful for copying a set (c=set(s)). // //go:linkname NewSet C.PySet_New func NewSet(iterable *Object) *Object { return nil } // Return the length of a set or frozenset object. Equivalent to len(anyset). // Set a SystemError if anyset is not a set, frozenset, or an instance of a // subtype. // // llgo:link (*Object).SetLen C.PySet_Size func (s *Object) SetLen() int { return 0 } // Return 1 if found, 0 if not found, and -1 if an error is encountered. // Unlike the Python __contains__() method, this function does not automatically // convert unhashable sets into temporary frozensets. Set a TypeError if the key // is unhashable. Set SystemError if s is not a set, frozenset, or an instance // of a subtype. // // llgo:link (*Object).SetContains C.PySet_Contains func (s *Object) SetContains(key *Object) int { return 0 } // Add key to a set instance. Also works with frozenset instances (like // PyTuple_SetItem() it can be used to fill in the values of brand new // frozensets before they are exposed to other code). Return 0 on success or -1 // on failure. Set a TypeError if the key is unhashable. Set a MemoryError if // there is no room to grow. Set a SystemError if set is not an instance of set // or its subtype. // // llgo:link (*Object).SetAdd C.PySet_Add func (s *Object) SetAdd(key *Object) int { return 0 } // Return 1 if found and removed, 0 if not found (no action taken), and -1 if an // error is encountered. Does not set KeyError for missing keys. set a TypeError // if the key is unhashable. Unlike the Python discard() method, this function // does not automatically convert unhashable sets into temporary frozensets. // Set SystemError if set is not an instance of set or its subtype. // // llgo:link (*Object).SetDiscard C.PySet_Discard func (s *Object) SetDiscard(key *Object) int { return 0 } // Return a new reference to an arbitrary object in the set, and removes the // object from the set. Return nil on failure. Set KeyError if the set is empty. // Set a SystemError if set is not an instance of set or its subtype. // // llgo:link (*Object).SetPop C.PySet_Pop func (s *Object) SetPop() *Object { return nil } // Empty an existing set of all elements. Return 0 on success. Return -1 and // set SystemError if set is not an instance of set or its subtype. // // llgo:link (*Object).SetClear C.PySet_Clear func (s *Object) SetClear() *Object { return nil }