mirror of https://github.com/statping/statping
				
				
				
			
		
			
				
	
	
		
			76 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
package null
 | 
						|
 | 
						|
import (
 | 
						|
	"database/sql/driver"
 | 
						|
	"encoding/json"
 | 
						|
	"gopkg.in/yaml.v2"
 | 
						|
)
 | 
						|
 | 
						|
func (s NullString) Value() (driver.Value, error) {
 | 
						|
	return s.String, nil
 | 
						|
}
 | 
						|
 | 
						|
// MarshalJSON for NullInt64
 | 
						|
func (i NullInt64) MarshalJSON() ([]byte, error) {
 | 
						|
	if !i.Valid {
 | 
						|
		return []byte("null"), nil
 | 
						|
	}
 | 
						|
	return json.Marshal(i.Int64)
 | 
						|
}
 | 
						|
 | 
						|
// MarshalJSON for NullFloat64
 | 
						|
func (f NullFloat64) MarshalJSON() ([]byte, error) {
 | 
						|
	if !f.Valid {
 | 
						|
		return []byte("null"), nil
 | 
						|
	}
 | 
						|
	return json.Marshal(f.Float64)
 | 
						|
}
 | 
						|
 | 
						|
// MarshalJSON for NullBool
 | 
						|
func (bb NullBool) MarshalJSON() ([]byte, error) {
 | 
						|
	if !bb.Valid {
 | 
						|
		return []byte("null"), nil
 | 
						|
	}
 | 
						|
	return json.Marshal(bb.Bool)
 | 
						|
}
 | 
						|
 | 
						|
// MarshalJSON for NullString
 | 
						|
func (s NullString) MarshalJSON() ([]byte, error) {
 | 
						|
	if !s.Valid {
 | 
						|
		return json.Marshal(nil)
 | 
						|
	}
 | 
						|
	return json.Marshal(s.String)
 | 
						|
}
 | 
						|
 | 
						|
// MarshalYAML for NullInt64
 | 
						|
func (i NullInt64) MarshalYAML() (interface{}, error) {
 | 
						|
	if !i.Valid {
 | 
						|
		return 0, nil
 | 
						|
	}
 | 
						|
	return yaml.Marshal(i.Int64)
 | 
						|
}
 | 
						|
 | 
						|
// MarshalYAML for NullFloat64
 | 
						|
func (f NullFloat64) MarshalYAML() (interface{}, error) {
 | 
						|
	if !f.Valid {
 | 
						|
		return 0.0, nil
 | 
						|
	}
 | 
						|
	return yaml.Marshal(f.Float64)
 | 
						|
}
 | 
						|
 | 
						|
// MarshalYAML for NullBool
 | 
						|
func (bb NullBool) MarshalYAML() (interface{}, error) {
 | 
						|
	if !bb.Valid {
 | 
						|
		return false, nil
 | 
						|
	}
 | 
						|
	return yaml.Marshal(bb.Bool)
 | 
						|
}
 | 
						|
 | 
						|
// MarshalYAML for NullString
 | 
						|
func (s NullString) MarshalYAML() (interface{}, error) {
 | 
						|
	if !s.Valid {
 | 
						|
		return "", nil
 | 
						|
	}
 | 
						|
	return yaml.Marshal(s.String)
 | 
						|
}
 |