mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-10-31 06:21:11 +00:00 
			
		
		
		
	cherry-pick from the forgefriends fork, except for the F3 API for mirroring which is a functional change that is not safe enough to introduce in Forgejo.
Refs: 3aad1f4e64
---
The motivation is to keep up-to-date with the rather large refactor of gof3. The changes are syntactic only and test is provided by the compliance suite.
Co-authored-by: limiting-factor <limiting-factor@posteo.com>
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7258
Reviewed-by: Michael Kriese <michael.kriese@gmx.de>
		
	
			
		
			
				
	
	
		
			43 lines
		
	
	
	
		
			912 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
	
		
			912 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Copyright Earl Warren <contact@earl-warren.org>
 | |
| // Copyright Loïc Dachary <loic@dachary.org>
 | |
| // SPDX-License-Identifier: MIT
 | |
| 
 | |
| package driver
 | |
| 
 | |
| import (
 | |
| 	"context"
 | |
| 
 | |
| 	"code.forgejo.org/f3/gof3/v3/f3"
 | |
| 	f3_id "code.forgejo.org/f3/gof3/v3/id"
 | |
| 	f3_tree "code.forgejo.org/f3/gof3/v3/tree/f3"
 | |
| )
 | |
| 
 | |
| type container struct {
 | |
| 	common
 | |
| }
 | |
| 
 | |
| func (o *container) NewFormat() f3.Interface {
 | |
| 	node := o.GetNode()
 | |
| 	return node.GetTree().(f3_tree.TreeInterface).NewFormat(node.GetKind())
 | |
| }
 | |
| 
 | |
| func (o *container) ToFormat() f3.Interface {
 | |
| 	return o.NewFormat()
 | |
| }
 | |
| 
 | |
| func (o *container) FromFormat(content f3.Interface) {
 | |
| }
 | |
| 
 | |
| func (o *container) Get(context.Context) bool { return true }
 | |
| 
 | |
| func (o *container) Put(ctx context.Context) f3_id.NodeID {
 | |
| 	return o.upsert(ctx)
 | |
| }
 | |
| 
 | |
| func (o *container) Patch(ctx context.Context) {
 | |
| 	o.upsert(ctx)
 | |
| }
 | |
| 
 | |
| func (o *container) upsert(context.Context) f3_id.NodeID {
 | |
| 	return f3_id.NewNodeID(o.getKind())
 | |
| }
 |