// Code generated by qtc from "navbar.qtpl". DO NOT EDIT.
// See https://github.com/valyala/quicktemplate for details.

//line templates/navbar.qtpl:1
package templates

//line templates/navbar.qtpl:1
import "context"

//line templates/navbar.qtpl:3
import (
	qtio422016 "io"

	qt422016 "github.com/valyala/quicktemplate"
)

//line templates/navbar.qtpl:3
var (
	_ = qtio422016.Copy
	_ = qt422016.AcquireByteBuffer
)

//line templates/navbar.qtpl:4
type Selection int

const (
	Git Selection = iota
	List
	About
	Config
	Login
)

//line templates/navbar.qtpl:15
type GitSelection int

const (
	Readme GitSelection = iota
	Log
	Summary
	Refs
	Tree
)

//line templates/navbar.qtpl:25
func streaminsertIfEqual(qw422016 *qt422016.Writer, s, d any) {
//line templates/navbar.qtpl:25
	if s == d {
//line templates/navbar.qtpl:25
		qw422016.N().S(` selected`)
//line templates/navbar.qtpl:25
	}
//line templates/navbar.qtpl:25
}

//line templates/navbar.qtpl:25
func writeinsertIfEqual(qq422016 qtio422016.Writer, s, d any) {
//line templates/navbar.qtpl:25
	qw422016 := qt422016.AcquireWriter(qq422016)
//line templates/navbar.qtpl:25
	streaminsertIfEqual(qw422016, s, d)
//line templates/navbar.qtpl:25
	qt422016.ReleaseWriter(qw422016)
//line templates/navbar.qtpl:25
}

//line templates/navbar.qtpl:25
func insertIfEqual(s, d any) string {
//line templates/navbar.qtpl:25
	qb422016 := qt422016.AcquireByteBuffer()
//line templates/navbar.qtpl:25
	writeinsertIfEqual(qb422016, s, d)
//line templates/navbar.qtpl:25
	qs422016 := string(qb422016.B)
//line templates/navbar.qtpl:25
	qt422016.ReleaseByteBuffer(qb422016)
//line templates/navbar.qtpl:25
	return qs422016
//line templates/navbar.qtpl:25
}

//line templates/navbar.qtpl:27
func StreamNavbar(qw422016 *qt422016.Writer, ctx context.Context, s Selection) {
//line templates/navbar.qtpl:27
	qw422016.N().S(`
        <nav class="container navbar navbar-expand">
          <div class="navbar-nav">
            <a class="nav-link`)
//line templates/navbar.qtpl:30
	streaminsertIfEqual(qw422016, s, Git)
//line templates/navbar.qtpl:30
	qw422016.N().S(`" href="/">git</a>
          </div>
          <div class="navbar-nav ms-auto">
          `)
//line templates/navbar.qtpl:33
	if !IsAuthenticationDisabled(ctx) {
//line templates/navbar.qtpl:33
		qw422016.N().S(`
          `)
//line templates/navbar.qtpl:34
		if IsLoggedIn(ctx) {
//line templates/navbar.qtpl:34
			qw422016.N().S(`
            <a class="nav-link`)
//line templates/navbar.qtpl:35
			streaminsertIfEqual(qw422016, s, Login)
//line templates/navbar.qtpl:35
			qw422016.N().S(`" href="/logout/">logout</a>
          `)
//line templates/navbar.qtpl:36
		} else {
//line templates/navbar.qtpl:36
			qw422016.N().S(`
            <a class="nav-link`)
//line templates/navbar.qtpl:37
			streaminsertIfEqual(qw422016, s, Login)
//line templates/navbar.qtpl:37
			qw422016.N().S(`" href="/login/">login</a>
          `)
//line templates/navbar.qtpl:38
		}
//line templates/navbar.qtpl:38
		qw422016.N().S(`
          `)
//line templates/navbar.qtpl:39
	}
//line templates/navbar.qtpl:39
	qw422016.N().S(`
`)
//line templates/navbar.qtpl:43
	qw422016.N().S(`
`)
//line templates/navbar.qtpl:47
	qw422016.N().S(`
          </div>
        </nav>
`)
//line templates/navbar.qtpl:50
}

//line templates/navbar.qtpl:50
func WriteNavbar(qq422016 qtio422016.Writer, ctx context.Context, s Selection) {
//line templates/navbar.qtpl:50
	qw422016 := qt422016.AcquireWriter(qq422016)
//line templates/navbar.qtpl:50
	StreamNavbar(qw422016, ctx, s)
//line templates/navbar.qtpl:50
	qt422016.ReleaseWriter(qw422016)
//line templates/navbar.qtpl:50
}

//line templates/navbar.qtpl:50
func Navbar(ctx context.Context, s Selection) string {
//line templates/navbar.qtpl:50
	qb422016 := qt422016.AcquireByteBuffer()
//line templates/navbar.qtpl:50
	WriteNavbar(qb422016, ctx, s)
//line templates/navbar.qtpl:50
	qs422016 := string(qb422016.B)
//line templates/navbar.qtpl:50
	qt422016.ReleaseByteBuffer(qb422016)
//line templates/navbar.qtpl:50
	return qs422016
//line templates/navbar.qtpl:50
}

//line templates/navbar.qtpl:52
func StreamGitItemNav(qw422016 *qt422016.Writer, name, ref string, s GitSelection) {
//line templates/navbar.qtpl:52
	qw422016.N().S(`
<div class="row">
    <h3 id="name">`)
//line templates/navbar.qtpl:54
	qw422016.E().S(name)
//line templates/navbar.qtpl:54
	qw422016.N().S(` `)
//line templates/navbar.qtpl:54
	if ref != "" && (s == Log || s == Tree) {
//line templates/navbar.qtpl:54
		qw422016.N().S(`@ `)
//line templates/navbar.qtpl:54
		qw422016.E().S(ref)
//line templates/navbar.qtpl:54
	}
//line templates/navbar.qtpl:54
	qw422016.N().S(`</h3>
</div>
<div class="row">
  <ul class="nav">
    <li class="nav-item">
      <a class="nav-link`)
//line templates/navbar.qtpl:59
	streaminsertIfEqual(qw422016, s, Readme)
//line templates/navbar.qtpl:59
	qw422016.N().S(`" aria-current="page" href="/`)
//line templates/navbar.qtpl:59
	qw422016.E().S(name)
//line templates/navbar.qtpl:59
	qw422016.N().S(`/about/">about</a>
    </li>
    <li class="nav-item">
      <a class="nav-link`)
//line templates/navbar.qtpl:62
	streaminsertIfEqual(qw422016, s, Summary)
//line templates/navbar.qtpl:62
	qw422016.N().S(`" aria-current="page" href="/`)
//line templates/navbar.qtpl:62
	qw422016.E().S(name)
//line templates/navbar.qtpl:62
	qw422016.N().S(`/">summary</a>
    </li>
    <li class="nav-item">
      <a class="nav-link`)
//line templates/navbar.qtpl:65
	streaminsertIfEqual(qw422016, s, Refs)
//line templates/navbar.qtpl:65
	qw422016.N().S(`" aria-current="page" href="/`)
//line templates/navbar.qtpl:65
	qw422016.E().S(name)
//line templates/navbar.qtpl:65
	qw422016.N().S(`/refs/">refs</a>
    </li>
    <li class="nav-item">
      <a class="nav-link`)
//line templates/navbar.qtpl:68
	streaminsertIfEqual(qw422016, s, Log)
//line templates/navbar.qtpl:68
	qw422016.N().S(`" aria-current="page" href="/`)
//line templates/navbar.qtpl:68
	qw422016.E().S(name)
//line templates/navbar.qtpl:68
	qw422016.N().S(`/log/`)
//line templates/navbar.qtpl:68
	qw422016.E().S(ref)
//line templates/navbar.qtpl:68
	qw422016.N().S(`/">log</a>
    </li>
    <li class="nav-item">
      <a class="nav-link`)
//line templates/navbar.qtpl:71
	streaminsertIfEqual(qw422016, s, Tree)
//line templates/navbar.qtpl:71
	qw422016.N().S(`" aria-current="page" href="/`)
//line templates/navbar.qtpl:71
	qw422016.E().S(name)
//line templates/navbar.qtpl:71
	qw422016.N().S(`/tree/`)
//line templates/navbar.qtpl:71
	qw422016.E().S(ref)
//line templates/navbar.qtpl:71
	qw422016.N().S(`/">tree</a>
    </li>
  </ul>
</div>
`)
//line templates/navbar.qtpl:75
}

//line templates/navbar.qtpl:75
func WriteGitItemNav(qq422016 qtio422016.Writer, name, ref string, s GitSelection) {
//line templates/navbar.qtpl:75
	qw422016 := qt422016.AcquireWriter(qq422016)
//line templates/navbar.qtpl:75
	StreamGitItemNav(qw422016, name, ref, s)
//line templates/navbar.qtpl:75
	qt422016.ReleaseWriter(qw422016)
//line templates/navbar.qtpl:75
}

//line templates/navbar.qtpl:75
func GitItemNav(name, ref string, s GitSelection) string {
//line templates/navbar.qtpl:75
	qb422016 := qt422016.AcquireByteBuffer()
//line templates/navbar.qtpl:75
	WriteGitItemNav(qb422016, name, ref, s)
//line templates/navbar.qtpl:75
	qs422016 := string(qb422016.B)
//line templates/navbar.qtpl:75
	qt422016.ReleaseByteBuffer(qb422016)
//line templates/navbar.qtpl:75
	return qs422016
//line templates/navbar.qtpl:75
}