mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-31 05:22:24 -05:00 
			
		
		
		
	
		
			
	
	
		
			52 lines
		
	
	
	
		
			3.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
		
		
			
		
	
	
			52 lines
		
	
	
	
		
			3.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
|  | // Code generated by astool. DO NOT EDIT. | ||
|  | 
 | ||
|  | // Package streams contains constructors and functions necessary for applications | ||
|  | // to serialize, deserialize, and use ActivityStreams types in Go. This | ||
|  | // package is code-generated and subject to the same license as the go-fed | ||
|  | // tool used to generate it. | ||
|  | // | ||
|  | // This package is useful to three classes of developers: end-user-application | ||
|  | // developers, specification writers creating an ActivityStream Extension, and | ||
|  | // ActivityPub implementors wanting to create an alternate ActivityStreams | ||
|  | // implementation that still satisfies the interfaces generated by the go-fed | ||
|  | // tool. | ||
|  | // | ||
|  | // Application developers should limit their use to the Resolver type, the | ||
|  | // constructors beginning with "New", the "Extends" functions, the | ||
|  | // "DisjointWith" functions, the "ExtendedBy" functions, and any interfaces | ||
|  | // returned in those functions in this package. This lets applications use | ||
|  | // Resolvers to Deserialize or Dispatch specific types. The types themselves | ||
|  | // can Serialize as needed. The "Extends", "DisjointWith", and "ExtendedBy" | ||
|  | // functions help navigate the ActivityStreams hierarchy since it is not | ||
|  | // equivalent to object-oriented inheritance. | ||
|  | // | ||
|  | // When creating an ActivityStreams extension, developers will want to ensure | ||
|  | // that the generated code builds correctly and check that the properties, | ||
|  | // types, extensions, and disjointedness is set up correctly. Writing unit | ||
|  | // tests with concrete types is then the next step. If the tool has an error | ||
|  | // generating this code, a fix is needed in the tool as it is likely there is | ||
|  | // a new RDF type being used in the extension that the tool does not know how | ||
|  | // to resolve. Thus, most development will focus on the go-fed tool itself. | ||
|  | // | ||
|  | // Finally, ActivityStreams implementors that want drop-in replacement while | ||
|  | // still using the generated interfaces are highly encouraged to examine the | ||
|  | // Manager type in this package (in addition to the constructors) as these are | ||
|  | // the locations where concrete types are instantiated. When supplying a | ||
|  | // different type in these two locations, the other generated code will | ||
|  | // propagate it throughout the rest of an application. The Manager is | ||
|  | // instantiated as a singleton at init time in this library. It is then | ||
|  | // injected into each implementation library so they can deserialize their | ||
|  | // needed types without relying on the underlying concrete type. | ||
|  | // | ||
|  | // Subdirectories of this package include implementation files and functions | ||
|  | // that are not intended to be directly linked to applications, but are used | ||
|  | // by this particular package. It is strongly recommended to only use the | ||
|  | // property interfaces and type interfaces in subdirectories and limiting | ||
|  | // concrete types to those in this package. The go-fed tool is likely to | ||
|  | // contain a pruning feature in the future which will analyze an application | ||
|  | // and eliminate code that would be dead if it were to be generated which | ||
|  | // reduces the compilation time, compilation resources, and binary size of an | ||
|  | // application. Such a feature will not be compatible with applications that | ||
|  | // use the concrete implementation types. | ||
|  | package streams |