// Copyright (C) 2022 Mya Pitzeruse // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . // package pb import ( "time" ) func (x *Duration) AsDuration() time.Duration { return time.Duration(x.Nanos) } func DurationPB(d time.Duration) *Duration { return &Duration{ Nanos: int64(d), } } func (x *Timestamp) AsTime() time.Time { return time.Unix(x.Seconds, int64(x.Nanos)) } func TimestampPB(t time.Time) *Timestamp { return &Timestamp{ Seconds: t.Unix(), Nanos: int32(t.Nanosecond()), } }