github.com/gagliardetto/solana-go@v1.11.0/types.go (about)

     1  // Copyright 2021 github.com/gagliardetto
     2  // This file has been modified by github.com/gagliardetto
     3  //
     4  // Copyright 2020 dfuse Platform Inc.
     5  //
     6  // Licensed under the Apache License, Version 2.0 (the "License");
     7  // you may not use this file except in compliance with the License.
     8  // You may obtain a copy of the License at
     9  //
    10  //      http://www.apache.org/licenses/LICENSE-2.0
    11  //
    12  // Unless required by applicable law or agreed to in writing, software
    13  // distributed under the License is distributed on an "AS IS" BASIS,
    14  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    15  // See the License for the specific language governing permissions and
    16  // limitations under the License.
    17  
    18  package solana
    19  
    20  import (
    21  	"time"
    22  )
    23  
    24  // UnixTimeSeconds represents a UNIX second-resolution timestamp.
    25  type UnixTimeSeconds int64
    26  
    27  func (res UnixTimeSeconds) Time() time.Time {
    28  	return time.Unix(int64(res), 0)
    29  }
    30  
    31  func (res UnixTimeSeconds) String() string {
    32  	return res.Time().String()
    33  }
    34  
    35  // UnixTimeMilliseconds represents a UNIX millisecond-resolution timestamp.
    36  type UnixTimeMilliseconds int64
    37  
    38  func (res UnixTimeMilliseconds) Time() time.Time {
    39  	return time.Unix(0, int64(res)*int64(time.Millisecond))
    40  }
    41  
    42  func (res UnixTimeMilliseconds) String() string {
    43  	return res.Time().String()
    44  }
    45  
    46  // DurationSeconds represents a duration in seconds.
    47  type DurationSeconds int64
    48  
    49  func (res DurationSeconds) Duration() time.Duration {
    50  	return time.Duration(res) * time.Second
    51  }
    52  
    53  func (res DurationSeconds) String() string {
    54  	return res.Duration().String()
    55  }
    56  
    57  // DurationMilliseconds represents a duration in milliseconds.
    58  type DurationMilliseconds int64
    59  
    60  func (res DurationMilliseconds) Duration() time.Duration {
    61  	return time.Duration(res) * time.Millisecond
    62  }
    63  
    64  func (res DurationMilliseconds) String() string {
    65  	return res.Duration().String()
    66  }