mirror of
				https://github.com/sharkdp/bat.git
				synced 2025-10-27 13:13:55 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			87 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
			Vendored
		
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
			Vendored
		
	
	
	
| # Interface to test varlink implementations against.
 | |
| # First you write a varlink client calling:
 | |
| # Start, Test01, Test02, …, Test09, End
 | |
| # The return value of the previous call should be the argument of the next call.
 | |
| # Then you test this client against well known servers like python or rust from
 | |
| # https://github.com/varlink/
 | |
| #
 | |
| # Next you write a varlink server providing the same service as the well known ones.
 | |
| # Now run your client against it and run well known clients like python or rust
 | |
| # from https://github.com/varlink/ against your server. If all works out, then
 | |
| # your new language bindings should be varlink certified.
 | |
| interface org.varlink.certification
 | |
| 
 | |
| type Interface (
 | |
|   foo: ?[]?[string](foo, bar, baz),
 | |
|   anon: (foo: bool, bar: bool)
 | |
| )
 | |
| 
 | |
| type MyType (
 | |
|   object: object,
 | |
|   enum: (one, two, three),
 | |
|   struct: (first: int, second: string),
 | |
|   array: []string,
 | |
|   dictionary: [string]string,
 | |
|   stringset: [string](),
 | |
|   nullable: ?string,
 | |
|   nullable_array_struct: ?[](first: int, second: string),
 | |
|   interface: Interface
 | |
| )
 | |
| 
 | |
| method Start() -> (client_id: string)
 | |
| 
 | |
| method Test01(client_id: string) -> (bool: bool)
 | |
| 
 | |
| method Test02(client_id: string, bool: bool) -> (int: int)
 | |
| 
 | |
| method Test03(client_id: string, int: int) -> (float: float)
 | |
| 
 | |
| method Test04(client_id: string, float: float) -> (string: string)
 | |
| 
 | |
| method Test05(client_id: string, string: string) -> (
 | |
|   bool: bool,
 | |
|   int: int,
 | |
|   float: float,
 | |
|   string: string
 | |
| )
 | |
| 
 | |
| method Test06(
 | |
|   client_id: string,
 | |
|   bool: bool,
 | |
|   int: int,
 | |
|   float: float,
 | |
|   string: string
 | |
| ) -> (
 | |
|   struct: (
 | |
|     bool: bool,
 | |
|     int: int,
 | |
|     float: float,
 | |
|     string: string
 | |
|   )
 | |
| )
 | |
| 
 | |
| method Test07(
 | |
|   client_id: string,
 | |
|   struct: (
 | |
|     bool: bool,
 | |
|     int: int,
 | |
|     float: float,
 | |
|     string: string
 | |
|   )
 | |
| ) -> (map: [string]string)
 | |
| 
 | |
| method Test08(client_id: string, map: [string]string) -> (set: [string]())
 | |
| 
 | |
| method Test09(client_id: string, set: [string]()) -> (mytype: MyType)
 | |
| 
 | |
| # returns more than one reply with "continues"
 | |
| method Test10(client_id: string, mytype: MyType) -> (string: string)
 | |
| 
 | |
| # must be called as "oneway"
 | |
| method Test11(client_id: string, last_more_replies: []string) -> ()
 | |
| 
 | |
| method End(client_id: string) -> (all_ok: bool)
 | |
| 
 | |
| error ClientIdError ()
 | |
| error CertificationError (wants: object, got: object)
 |